zoukankan      html  css  js  c++  java
  • 3.springMVC参数绑定过程(页面向后台传参)

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

      

       

      

      

      

  • 相关阅读:
    python 创建文件夹
    Python利用pandas处理Excel数据的应用
    解决git rebase操作后推送远端分支不成功的问题
    LeetCode 1 两数之和
    LeetCode 70 爬楼梯
    LeetCode 11 盛水最多的容器
    LeetCode 283 移动零
    数据结构与算法 ---- 数组 -- Array
    跳表???
    自顶向下编程
  • 原文地址:https://www.cnblogs.com/huaixiaoz/p/5777030.html
Copyright © 2011-2022 走看看