角色扮演2铺垫剧情:Spring 2.5:Spring MVC中的新特性(3) - 编程入门网
来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 10:47:35
用@RequestParam提取和解析参数
@MVC另外一个特性是其提取和解析请求参数的能力。让我们继续重构上面的方法,并在其中添加@RequestParam注解:
@RequestMapping("/accounts/show")
public void show(@RequestParam("number") String number, Map 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 model)
{
model.put("account", accountRepository.findAccount(number));
}
...
方法匹配的请求是“/accounts/show”,依据的是类级别的@RequestMapping指定的匹配路径“/accounts/*”和方法名“show”。本文来自编程入门网:http://www.bianceng.cn/Programming/Java/201101/23558_3.htm
@MVC另外一个特性是其提取和解析请求参数的能力。让我们继续重构上面的方法,并在其中添加@RequestParam注解:
@RequestMapping("/accounts/show")
public void show(@RequestParam("number") String number, Map
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
{
model.put("account", accountRepository.findAccount(number));
}
...
方法匹配的请求是“/accounts/show”,依据的是类级别的@RequestMapping指定的匹配路径“/accounts/*”和方法名“show”。本文来自编程入门网:http://www.bianceng.cn/Programming/Java/201101/23558_3.htm
Spring 2.5:Spring MVC中的新特性(3) - 编程入门网
Spring 系列,第 3 部分: 进入 Spring MVC
Spring MVC 原理
spring mvc入门教程
spring mvc注解例子
Spring MVC快速上手教程
spring MVC 基本操作方法2
项目中如何体现Spring中的切面编程
入门01 - 简介Spring
一步一步开发 Spring Framework MVC 应用程序
Spring 中的JdbcTemplate使用
Spring入门之接口注入
Struts VS Spring两种MVC框架比较
Spring Struts Hibernate快速入门实例
入门04 - 第一个Spring程式
spring festival
Spring colors
【引用】Spring
spring 定时器
Spring入门教程
Spring 入门教程
Spring定时器
学习Spring的小小心得(重新整理版) - Spring入门 - ITeye专栏频道
Spring 系列: Spring 框架简介