视频教程地址: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;

  页面:

springmvc get请求如何传入两个对象_数据

  接下的几种绑定,我把大概的写法给大家,就不列举的那么详细了

  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属性是你包装类的对象名+属性名)

springmvc get请求如何传入两个对象_数据_02

  5.集合类型的绑定(不详细的写了有需要可留言)

    数组类型的绑定:利用复选框把id传过去,Controller定义名字相同的数组获取即可

    应用场景:批量删除

 

    list类型的绑定:这个的写法和包装的实体类有点类似,不同的是页面的写法有很大的区别,把页面的写法给大家

    页面:

    

springmvc get请求如何传入两个对象_基本类型_03

    应用场景:批量修改

    map类型的绑定:类似list