视频教程地址:http://edu.51cto.com/sd/2cfc2
所谓的参数绑定过程,就是页面向后台传递参数,后台接收参数的一个过程,那么总结在springMVC中参数绑定的过程,大致可以分为以下几种:
1.默认支持的参数类型(就是你在方法上以形参的形式定义,就可以直接使用的),主要有以下几个
HttpSession
HttpServletRequest
HttpServletResponse
Model/ModelMap
相信前面几个大家并不陌生,和servlet的使用是一样的,至于Model和ModelMap是把数据放到request作用域的,这里也许你会觉得奇怪,这些东西和你接收页面参数并没有什么关系,是的,这些主要是哪里获取session,传递参数,跳转页面,携带数据相关的几个默认类型,和接收参数并没有太大关系,但是需要了解,以后会用到,使用方法如下:
@RequestMapping(value="/session_demo")
public String session_demo(HttpSession session,Model model) {
session.getAttribute("");//获取session
session.setAttribute("", "");//设置session
model.addAttribute("", "");//把数据放到request作用域中
return "hello";
}
举一个例子,其他的使用类似,其中("","")括号中的第一个" "表示名字,第二个" "表示值。
2.基本类型的绑定(基本类型就是指:int,String......这些),对于基本类型,只要你定义的名字和页面的name属性一致,就会自动接收页面文本框的值
Controller代码:
@RequestMapping(value="/test_user")
public String test_user(int sid,String name){
//int sid等价于 request.getpa...("");
System.out.println(sid+"="+name);
return "hello";
}
页面代码:
<form action="test_user" method="post"><!--其中action提交的就是你的@RequestMapping中的value的值 -->
<input name="sid" ></br>
<input name="name" ></br>
<input type="submit" value="提交"></br>
</form>
3.绑定实体类(只要你的实体类属性和页面的name属性一致就会自动接收),并且实体类的绑定,和基本类型的绑定不相互影响,可以同时使用
实体类:get,set和构造函数方法(全构造,和空的构造最好都生成)一定要有
private int sid;
private String name;
private String sex;
private String hobbies;
页面:
接下的几种绑定,我把大概的写法给大家,就不列举的那么详细了
4.包装的实体类绑定(就是实体类中放着另外的实体类)
使用情况:当页面的查询条件比较复杂的时候,并且设计到多个数据库的表,这个时候我们可以把这些查询条件单独封装成一个类,或者用包装一个查询类,里面放着实体类。
包装的查询类:
public class QueryItems {
private Student student;
private BanJ banj;
private List<Student>list;
}
Controller写法:
@RequestMapping(value = "/test_items")
public String queryitems(QueryItems items){
System.out.printIn(items.getStudent());return "hello";
}
页面写法:(name属性是你包装类的对象名+属性名)
5.集合类型的绑定(不详细的写了有需要可留言)
数组类型的绑定:利用复选框把id传过去,Controller定义名字相同的数组获取即可
应用场景:批量删除
list类型的绑定:这个的写法和包装的实体类有点类似,不同的是页面的写法有很大的区别,把页面的写法给大家
页面:
应用场景:批量修改
map类型的绑定:类似list