@RequestParam的作用

来源:互联网 发布:即时通讯软件市场份额 编辑:程序博客网 时间:2024/06/04 19:19

见:http://blog.csdn.net/jacabe/article/details/46234325




@MVC另外一个特性是其提取和解析请求参数的能力。让我们继续重构上面的方法,并在其中添加@RequestParam注解: 
@RequestMapping("/accounts/show") 
public void show(@RequestParam("number") String number, Map<String, Object> model) { 
    model.put("account", accountRepository.findAccount(number)); 


    这里@RequestParam注解可以用来提取名为“number”的String类型的参数,并将之作为输入参数传入。 @RequestParam支持类型转换,还有必需和可选参数。类型转换目前支持所有的基本Java类型,你可通过定制的PropertyEditors 来扩展它的范围。下面是一些例子,其中包括了必需和可选参数: 
@RequestParam(value="number", required=false) String number 
@RequestParam("id") Long id 
@RequestParam("balance") double balance 
@RequestParam double amount 

    注意,最后一个例子没有提供清晰的参数名。当且仅当代码带调试符号编译时,结果会提取名为“amount ”的参数,否则,将抛出IllegalStateException异常,因为当前的信息不足以从请求中提取参数。由于这个原因,在编码时最好显式的指定参数名。


三种写法,test(String name), 
test(@RequestParam String name), 
test(@RequestParam("userName") String name), 
第一种如果没有name 参数不会报错, 
第二种没有name 参数会报错,(也可以设置required = false, 会自动寻找页面中标签name属性值为“name”的参数。)
第三种跟第二种的区别是 
请求的参数名userName转换成方法的参数name


原创粉丝点击