Quantcast
Channel: IT社区推荐资讯 - ITIndex.net
Viewing all articles
Browse latest Browse all 15843

【spring】springmvc接收请求参数的方法

$
0
0
     控制器的请求处理方法的签名可以将任何事物作为参数,我们可以将HttpServletRequest、HttpServletResponse、 String或者数字参数传递进来,这些参数可以对应请求中的查询参数、cookie值、HTTP请求头的值或其他一些可能的选项。

     下面一些例子来说明
  1. 使用@RequestParam绑定请求参数值
    @RequestMapping(value="/method1")  
        public String method1(  
                @RequestParam(value="userName",required = false) String userName,  
                @RequestParam("pwd") String pwd){  
            return "methodSignature";  
        }
     

  2. 使用@CookieValue绑定请求中的Cookie值
    @RequestMapping(value="/method2")  
        public String method2(  
                @CookieValue(value="sessionId",required=false)String sessionId){  
            return "methodSignature";  
        } 
     

  3. 使用@RequestHeader绑定请求报文头的属性值
    @RequestMapping(value="/method3")  
        public String method3(  
                @RequestHeader("Accept-Encoding") String encoding,  
                @RequestHeader("Keep-Alive") long keepAlive){  
            return "methodSignature";  
        }
     

  4. 使用@PathVariabl获取路径中传递参数
    public ModelAndView helloWorld(
                  @PathVariable String id, 
                  @PathVariable String str) {  
            System.out.println(id);  
            System.out.println(str);  
            return new ModelAndView( " /helloWorld " );  
    }  
     

  5. 使用表单对象绑定请求参数值
    @RequestMapping(value="/method4")  
        public String method4(User user){  
            return "methodSignature";  
        } 
     
  6. 使用Servlet API对象作为入参
    • 同时使用HttpServletRequest、HttpServletResponse、HttpSession 
      @RequestMapping(value="method5")  
          public void method5(
                    HttpServletRequest request,
                    HttpServletResponse response,
                    HttpSession session){  
              String userName = WebUtils.findParameterValue(request, "userName");  
              response.addCookie(new Cookie("userName",userName));  
          }
       
    • 使用Servlet原生API接口,如WebRequest和NativeWebRequest等 
      @RequestMapping(value="method6")  
          public String method6(WebRequest request){  
              String userName = request.getParameter("userName");  
              return "methodSignature";  
          } 
       
    • 使用IO对象作为入参 
      如java.io.InputStream/java.io.Reader 及java.io.OutputStream/java.io.Writer 
      @RequestMapping(value="method7")  
          public void method7(OutputStream os) throws IOException{  
              Resource res = new ClassPathResource("/image.jpg");//读取类路径下的图片文件  
              FileCopyUtils.copy(res.getInputStream(), os);  
          }  
       
    • 使用其他类型的参数
      java.util.Locale/java.security.Principal
      也可以通过Servlet的HttpServletRequest的getLocale()及getUserPrincipal()  
      @RequestMapping(value="method8")
      public String method8(Locale locale,Principal principal){  
              return "methodSignature";  
          }  
       
      以上转自 :http://blog.csdn.net/jingyuan_/article/details/9465415
                        http://blog.csdn.net/yaerfeng/article/details/23658391



已有 0人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐




Viewing all articles
Browse latest Browse all 15843

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>