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

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

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";
    }





猜你喜欢

转载自blog.csdn.net/codertnt/article/details/80918408
今日推荐