SpringMVC的页面取值和回传页面方式

Spring MVC参数传递与接收
本文介绍了Spring MVC中多种从页面获取参数的方法,包括通过HttpServletRequest、直接定义参数、使用对象来获取值等,并展示了如何将控制器中的数据传递到页面。

再说说如何从页面获取参数的方式

1.通过HttpServletRequest request来获取,request.getParameter();             

@RequestMapping(value = "/list.do")
    public String list(HttpServletRequest request){
        String name=request.getParameter("userName");
        return "userinfo/user_list";
    }
2.直接定义参数,保证参数和前台标签的name一致即可
java代码
@RequestMapping(value = "/list.do")
    public String list(@RequestParam(value = "uName") String userName,
            Integer userPassword, String userSex) {
        System.out.println(userName + "\t" + userPassword + "\t" + userSex);
        return "userinfo/user_list";
    }
jsp代码
    <form action="user/list2.do" method="post">
    姓名:<input type="text" name="userName"/><br/>
   <-- 姓名2:<input type="text" name="uName"/><br/>-->
    密码:<input type="text" name="userPassword"/><br/>
    性别:<input type="text" name="userSex"/><br/>
    日期:<input type="text" name="userTime"/>
    <input type="submit" name="commit" value="提交"/>
    </form>
注意: 
1,@RequestParam()这个可以设置从页面传的参数设置默认值。或者设置别名(例如:input标签中name=”userName”时,此方法可以获取到该标签的value值,当name=”uName”时,也可以获取到该标签的value值) 
2,直接定义参数方式,参数可以自动转换格式,例如页面时String类型的密码,参数可以为Integer类型,它可以自动转换(这点非常好) 
3. 通过对象来获取值
@RequestMapping(value = "/list2.do")
    public String list2(User us, Date userTime) {
        System.out.println(us.getUserName() + "\t" + us.getUserPassword()
                + "\t" + us.getUserSex());
        System.out.println(userTime);
        return "userinfo/user_list";
    }

@InitBinder
    public void initBinder(WebDataBinder binder) {  //自动转换成Date类型
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(
                dateFormat, false));
    }
注意:参数为日期类型时,需要定一下检测日期类型的方法,进行格式转换。

如何从控制器中传值到页面呢?

1.最原始的,通过HttpServletRequset request来传递,request.setAttribute();
@RequestMapping(value="/add1.do")
    public String add(HttpServletRequest request){

        String userNumber = request.getParameter("userNumber");
        String passWord = request.getParameter("passWord");

        System.out.println("userNumber:"+userNumber+" passWord:"+passWord);

        String str = "userNumber:"+userNumber+" passWord:"+passWord;

        request.setAttribute("user", str);

        return "user_add1";
    }

2.
通过ModelAndView来传递到页面
@RequestMapping(value="/add2.do")
    public ModelAndView add2(){

        ModelAndView mav = new ModelAndView("user_add2");
        mav.addObject("userId", 1001);
        mav.addObject("userName", "张三");

        return mav;
    }
3. 通过model来传递(一般开发这个比较用的多)
@RequestMapping(value="/add3.do")
    public String add3(Model model){

        model.addAttribute("personId", 9527);
        model.addAttribute("personName", "唐伯虎");

        return "user_add3";
    }
4. 通过map来传递
@RequestMapping(value="/add4.do")
    public String add4(Integer personId,String userName,Map map){

        System.out.println(personId);
        System.out.println(userName);
        map.put("personId", 9527);
        map.put("personName", "唐伯虎");

        return "user_add4";
    }





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值