SpringMVC-接收请求参数和页面传参

来源:互联网 发布:连锁店用什么软件 编辑:程序博客网 时间:2024/05/18 17:42

SpringMVC-接收请求参数和页面传参

 

  1.使用HttpServletRequest获取

[java] 查看纯文本打印 
  1. @RequestMapping “/test.do” )    
  2. public  String test(HttpServletRequest request){    
  3.     String name = request.getParameter(“name” )    
  4.     String pass = request.getParameter(“pass” )    
  5. }   

  2.Spring会自动将表单参数注入到方法参数,和表单的名称属性保持一致,和Struts2一样。

[java] 查看纯文本打印 
  1. @RequestMapping “/test.do” )    
  2. public  String test(HttpServletRequest请求,String name,    
  3.  @RequestParam “pass” )String password)  //表单属性是pass,用变量密码接收    
  4. {    
  5.    System.out.println(name);    
  6.    System.out.println(密码)    
  7. }    

  3.自动注入Bean属性

[HTML] 查看普通拷贝打印 
  1. form action “test.do” >     
  2.    用户名:input name “name” />     
  3.    密码:input name “pass” />     
  4.    input type “submit” value “测试” >      
  5. </ form >    

[HTML] 查看普通拷贝打印 
  1. //封装的用户类    
  2. 公共类User {    
  3.   私有字符串名称    
  4.   私人字符串传递;    
  5. }    
[java] 查看纯文本打印 
  1. @RequestMapping “/test.do” )    
  2. public  String test(用户用户)    
  3. {    
  4.        System.out.println(name);    
  5.        System.out.println(密码)    
  6. }    

    当控制器组件处理后,向jsp页面传值:

       1)使用HttpServletRequest和Session然后setAttribute(),就和Servlet中一样。

       2)使用ModelAndView对象。

       3)使用ModelMap对象。

       4)使用@ModelAttribute注解。

 

       模型数据会利用HttpServletRequest的属性传值到test.jsp中。

[java] 查看纯文本打印 
  1. @RequestMapping “/test.do” )    
  2. public  ModelAndView test(String name,String pass){    
  3.     user user = userService.test(name,pwd);    
  4.     Map <String,Object> data =  new  HashMap <String,Object>();    
  5.     data.put(“user” ,user);    
  6.     返回新的 ModelAndView(“成功” ,数据);     
  7. }    

      使用ModelMap参数对象示例:

      ModelMap数据会利用HttpServletRequest的属性传值到test.jsp中。

[java] 查看纯文本 
打印
  1. @RequestMapping “/test.do” )    
  2. public  String test(String name,String pass,ModelMap model){    
  3.     user user = userService.test(name,pwd);    
  4.     model.addAttribute(“user” ,user);    
  5.     model.put(“name” ,name);    
  6.     回报“成功” ;     
  7. }    

      使用@ModelAttribute示例:

      在控制器方法的参数部分或Bean属性方法上使用。

    @ModelAttribute数据会利用HttpServletRequest的属性传值到test.jsp中。

[java] 查看纯文本 
打印
  1. @RequestMapping “/test.do” )    
  2. public  String test(@ModelAttribute “user” )User user){    
  3.     //去做    
  4.    回报“成功” ;     
  5. }    
  6.     
  7. @ModelAttribute “name” )    
  8. public  String getName(){    
  9.     返回 名称    
  10. }    

       会话存储:

       可以利用HttpServletReequest的getSession()方法。

[java] 查看纯文本 
打印
  1. @RequestMapping “/test.do” )    
  2. public  String test(String name,String pwd    
  3.                             ModelMap模型,HttpServletRequest请求){    
  4.      用户user = serService.test(name,pwd);    
  5.      HttpSession session = request.getSession();    
  6.      session.setAttribute(“user” ,user);    
  7.      model.addAttribute(“user” ,user);    
  8.      回报“成功” ;     
  9. }    

     春季MVC默认采用的是转发来定位视图,如果要使用重定向,可以如下操作:

        1)使用RedirectView。

        2)使用redirect:前缀。

[java] 查看纯文本 
打印
  1. public  ModelAndView test(){    
  2.    RedirectView view =  new  RedirectView(“regirstTest.do” );    
  3.    返回新的 ModelAndView(view);     
  4. } <strong> </ strong>  

        或者用如下方法,工作中常用的方法:

[java] 查看纯文本 
打印
  1. public  String test(){    
  2.     //去做    
  3.     返回“redirect:regirstTest.do” ;     
  4. }    

0 0
原创粉丝点击