• @RequestParam的使用


    来源:http://825635381.iteye.com/blog/2196911
    @RequestParam:
    一、 基本使用,获取提交的参数
    后端代码:

    @RequestMapping("testRequestParam")    
    public String filesUpload(@RequestParam String inputStr, HttpServletRequest request) {    
        System.out.println(inputStr);  
    
        int inputInt = Integer.valueOf(request.getParameter("inputInt"));  
        System.out.println(inputInt);  
    
        // ......省略  
        return "index";  
    }  
    

     二、各种异常情况处理
    1、可以对传入参数指定参数名

    @RequestParam String inputStr  
    // 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错  
    @RequestParam(value="aa") String inputStr  
    

     2、可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传

    // required=false表示不传的话,会给参数赋值为null,required=true就是必须要有  
    @RequestMapping("testRequestParam")    
    public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, HttpServletRequest request)
    

     3、如果用@RequestMapping注解的参数是int基本类型,但是required=false,这时如果不传参数值会报错,因为不传值,会赋值为null给int,这个不可以

    @RequestMapping("testRequestParam")    
    
     public String filesUpload(@RequestParam(value="aa", required=true) String inputStr,@RequestParam(value="inputInt", required=false) int inputInt  
    ,HttpServletRequest request) {    
    
            // ......省略  
            return "index";  
    }  
    

     解决方法:
    “Consider declaring it as object wrapper for the corresponding primitive type.”建议使用包装类型代替基本类型,如使用“Integer”代替“int”

  • 相关阅读:
    多线程程序设计学习(10)Future pattern
    Stack编程队列
    JS操作JSON总结
    java并发之TimeUnit理解
    java并发之DelayQueue实际运用示例
    netty的编解码器理解(转)
    spring中@Resource和@Autowired理解
    Netty中解码基于分隔符的协议和基于长度的协议
    构建基于Netty 的HTTP/HTTPS 应用程序
    对于spring中事务@Transactional注解的理解
  • 原文地址:https://www.cnblogs.com/MaxElephant/p/8086547.html
Copyright © 2020-2023  润新知