SpringMvc要点总结
一、介绍
SpringMvc属于SpringFrameWork的后续产品,应用了MVC设计模式的一个显示层框架。
二、特点
1.MVC
三、核心功能
自动装配
request中一般携带如下数据
1)单一的value 2)普通的key-value 3)多个普通的key-value 4)包装过的key-value(key为属性.属性的形式) 5)数组,集合类型
1.简单类型(基本数据类型、String)
接收没有key的参数时。需要这样书写Controller中的映射路径。这样就可以自动将参数装配到str中了
例如:http://localhost:8080/test/beijing1234
@RequestMapping("/test/{param}")
public String test(@PathVariable("param")String str) {
return "test";
}
接收普通的key-value。注意:请求中的key必须与参数列表中的参数名称一致,才能装配成功。
例如:http://localhost:8080/test?usename=AAA&password=123456
@RequestMapping("/test")
public String test(String username,String password) {
return "test";
}
2.包装类型(pojo)
往往从前台接收的数据需要设置到对象中使用,SpringMvc也支持接收将多个key-value直接装配到对象中
前提:请求参数的key必须与实体类中的属性名保持一致
例如:http://localhost:8080/test?usename=AAA&password=123456 User类中就必须有username、password这两个属性。可以还有其他属性,但是会装配成初始值。
public class User { private String username; private String password; //getter && setter }
这样接收:
@RequestMapping("/test")
public String test(User user) {
return "test";
}
3.VO类型(对象中包含对象)
例如:http://localhost:8080/test?usename=AAA&password=123456&address.addressName=北京
Userl类中除了有username、password属性外。还必须有address属性。同时Address类中要有addressName属性
public class User { private String username; private String password; //地址对象 private Address address; //getter && setter }
public class Address { private int addressId; private String addressName; //getter & setter }
这样接收:
@RequestMapping("/test")
public String test(User user) {
return "test";
}
4.数组、集合类型
数组一般用于批量删除,从前台接收一个主键数组。一般是json格式,
如:{ "ids" : [1,2,3,4,5,6,7]}
集合一般用于批量修改,从前台接收一个对象数组。也是json格式,
如:{ "userList" : [
{ "id" : "1" , "username" : "张三" , "password" : "123456"},
{ "id" : "2" , "username" : "李四" , "password" : "123456"},
{ "id" : "3" , "username" : "王五" , "password" : "123456"}
]
}
这种情况,在Controller中这样来接收
/** * 批量修改 * @param userList 待修改的User对象集合 * @return */ @RequestMapping(value="modify") @ResponseBody public R modify(@RequestBody List<User> userList) { //接收到数据后的操作省略 return R.ok(); } /** * 批量删除 * @param ids 待删除的id数组 * @return */ @RequestMapping(value="del") @ResponseBody public R del(@RequestBody Integer[] ids){ //接收到数据后的操作省略 return R.ok(); }
四、使用步骤
在核心配置文件中添加以下前三条:
1.添加@Controller注解扫描
2.添加mvc注解驱动
3.配置视图解析器
<!-- @Controller注解扫描 --> <context:component-scan base-package="cn.hpe.controller"/> <!-- 注解驱动 --> <mvc:annotation-driven/> <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
4.在web.xml中添加SpringMvc前端控制器、[编码过滤器]
<!-- springmvc前端控制器 --> <servlet> <servlet-name>springMvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <!-- 指定核心配置文件的位置 --> <param-name>contextConfigLocation</param-name> <param-value>classpath:SpringMvc.xml</param-value> </init-param> <!-- 在tomcat启动的时候就加载这个servlet --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

浙公网安备 33010602011771号