打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Spring 2.5:Spring MVC中的新特性(3) - 编程入门网
用@RequestParam提取和解析参数
 
@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异常,因为当前的信息不足以从请求中提取参数。由于这个原因,在编码时最好显式的指定参数名。
 
继续@RequestMapping的讨论
 
把@RequestMapping放在类级别上是合法的,这可令它与方法级别上的@RequestMapping注解协同工作,取得缩小选择范围的效果,下面是一些例子。
 
类级别:
 
RequestMapping("/accounts/*")
 
方法级别:
 
@RequestMapping(value="delete", method=RequestMethod.POST)
 @RequestMapping(value="index", method=RequestMethod.GET, params="type=checking")
 @RequestMapping
 
第一个方法级的请求映射和类级别的映射结合,当HTTP方法是POST时与路径“/accounts/delete”匹配;第二个添加了一个要求,就是名为“type”的请求参数和其值“checking”都需要在请求中出现;第三个根本就没有指定路径,这个方法匹配所有的 HTTP方法,如果有必要的话可以用它的方法名。下面改写我们的方法,使它可以依靠方法名进行匹配,程序如下:
 
@Controller
 @RequestMapping("/accounts/*")
 public class AccountsController {
    @RequestMapping(method=RequestMethod.GET)
    public void show(@RequestParam("number") String number, Map<String, Object> model)
   {
     model.put("account", accountRepository.findAccount(number));
    }
    ...
 
方法匹配的请求是“/accounts/show”,依据的是类级别的@RequestMapping指定的匹配路径“/accounts/*”和方法名“show”。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Spring MVC常用注解整理
***spring mvc3提高生产力之——利用annotation使前后台数据交互更透明
Spring MVC中RequestMapping的各种用法
04-spring mvc(2):请求地址映射(@RequestMapping)
SpringBoot注解整理
Spring RestController 请求参数详解 | 刘彦玮的技术博客
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服