SpringMVC入门配置和简单实现
web.xml的配置
<!-- springmvc中央控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- url-pattern不要配成/* --> <url-pattern>*.do</url-pattern> </servlet-mapping>
核心配置:springmvc-servelet.xml
xml方式:
三种handlerMapping访问方式,1.通过<bean name="hello.do" class=""/>的name访问,默认配置:
<!-- 默认情况下采用bean的name映射处理器来访问controller,如果没有被显示定义出来会被其他的映射处理所覆盖,如果想要使用需要显示定义 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
2,简单url映射处理:
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello.do">testController</prop>
</props>
</property>
</bean> 3,<!-- 以controller类名来访问的映射处理器 -->
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
<!-- 以controller类名来访问,首字母必须小写 -->
<bean id="testController" class="com.app.web.servlet.TestController"></bean> 不论是xml还是注解都必须配置视图解析器:
<!-- 内部资源视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"></property>
<!-- 配置后缀 -->
<property name="suffix" value=".jsp"></property>
</bean> 三种控制器:
1,参数控制器:
<!-- 参数控制器 -->
<!-- 不能采用controller的class的那么来访问 -->
<bean name="/index.do" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<property name="viewName" value="index"></property>
</bean>
2,命令控制器:
<!-- 命令控制器 -->
<bean name="/comm.do" class="com.app.web.model.CommController">
<!-- 指定收集对象类型 -->
<property name="commandClass" value="com.app.domain.Person"></property>
</bean> 3.表单控制器:
<!-- 表单控制器 -->
<bean name="/form.do" class="com.app.web.servlet.FormController">
<!-- 指定收集对象类型 -->
<property name="commandClass" value="com.app.domain.Person"></property>
<!-- 表单页面 -->
<property name="formView" value="form"></property>
<!-- 成功页面 -->
<property name="successView" value="success"/>
</bean> 注解方式:
springmvc-servelet.xml中不需要配置控制器和访问方式,只需要配置视图解析器,注解驱动,组件扫描即可
<!-- 注册注解驱动 -->
<mvc:annotation-driven/>
<!-- 组件扫描 -->
<context:component-scan base-package="com.app.web.controller"></context:component-scan>
视图解析器:
<!-- 内部资源视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"></property>
<!-- 配置后缀 -->
<property name="suffix" value=".jsp"></property>
</bean> 在controller类上加上注解:@controller 命名空间:RequestMapping("test") ,在方法上加上RequestMapping("test1.do")--方法上的注解名字使用和的方法名称相同便于区分在同一个controller中的不同方法
1 @Controller 2 @RequestMapping("test") 3 public class TestController1 { 4 5 /** 6 * 通过modelandview方式注解 7 * @param person 对象参数 8 * @return 9 */ 10 @RequestMapping("test1.do") 11 public ModelAndView test1(Person person){ 12 13 Map<String, Object> map=new HashMap<String, Object>(); 14 map.put("p", person); 15 16 return new ModelAndView("success", map); 17 } 18 19 /** 20 * 通过返回String类型配置 建议使用这种 21 * @param person 注入对象 22 * @param model model接口参数 23 * @return 24 */ 25 @RequestMapping("test2.do") 26 public String test2(Person person,Model model){ 27 System.out.println("test2.."); 28 model.addAttribute("p",person); 29 return "success"; 30 } 31 32 /** 33 * 34 * @param person 35 * @param model 36 * @return 37 */ 38 @RequestMapping("test3.do") 39 public String test3(Person person,Map<String,Object> map){ 40 41 map.put("p", person); 42 43 return "success"; 44 } 45 46 }

浙公网安备 33010602011771号