- 内容提要
- 作者简介
- 译者简介
- 前言
- HTTP
- Servlet 和 JSP
- 下载 Spring 或使用 STS 与 Maven/Gradle
- 手动下载 Spring
- 使用 STS 和 Maven/Gradle
- 下载 Spring 源码
- 本书内容简介
- 下载示例应用
- 第 1 章Spring 框架
- 第 2 章模型 2 和 MVC 模式
- 第 3 章Spring MVC 介绍
- 第 4 章基于注解的控制器
- 第 5 章数据绑定和表单标签库
- 第 6 章转换器和格式化
- 第 7 章验证器
- 第 8 章表达式语言
- 第 9 章JSTL
- 第 10 章国际化
- 第 11 章上传文件
- 第 12 章下载文件
- 第 13 章应用测试
- 附录 A Tomcat
- 附录 B Spring Tool Suite 和 Maven
- 附录 C Servlet
- 附录 D JavaServer Pages
- 附录 E 部署描述符
4.2 编写请求处理方法
每个请求处理方法可以有多个不同类型的参数,以及一个多种类型的返回结果。例如,如果在请求处理方法中需要访问 HttpSession 对象,则可以添加的 HttpSession 作为参数,Spring 会将对象正确地传递给方法。
@RequestMapping("/<em>uri</em>")
public String myMethod(HttpSession session) {
...
session.addAttribute(<em>key</em>, <em>value</em>);
...
}
或者,如果需要访问客户端语言环境和 HttpServletRequest 对象,则可以在方法签名上包括这样的参数:
@RequestMapping("/<em>uri</em>")
public String myOtherMethod(HttpServletRequest request,
Locale locale) {
...
// access Locale and HttpServletRequest here
...
}
下面是可以在请求处理方法中出现的参数类型:
javax.servlet.ServletRequest 或 javax.servlet.http.HttpServletRequest。
javax.servlet.ServletResponse 或 javax.servlet.http.HttpServletResponse。
javax.servlet.http.HttpSession。
org.springframework.web.context.request.WebRequest 或 org.springframework.web.
context.request.NativeWebRequest。
java.util.Locale。
java.io.InputStream 或 java.io.Reader。
java.io.OutputStream 或 java.io.Writer。
java.security.Principal。
HttpEntity<?>paramters
java.util.Map/org.springframework.ui.Model /。
org.springframework.ui.ModelMap。
org.springframework.web.servlet.mvc.support.RedirectAttributes。
org.springframework.validation.Errors /。
org.springframework.validation.BindingResult。
命令或表单对象。
org.springframework.web.bind.support.SessionStatus。
org.springframework.web.util.UriComponentsBuilder。
带 @PathVariable、@MatrixVariable、@RequestParam、@RequestHeader、@RequestBody 或 @RequestPart 注释的对象。
特别重要的是 org.springframework.ui.Model 类型。这不是一个 Servlet API 类型,而是一个包含 Map 的 Spring MVC 类型。每次调用请求处理方法时,Spring MVC 都创建 Model 对象并将其 Map 注入到各种对象。
请求处理方法可以返回如下类型的对象:
ModelAndView。
Model。
包含模型的属性的 Map。
View。
代表逻辑视图名的 String。
void。
提供对 Servlet 的访问,以响应 HTTP 头部和内容 HttpEntity 或 ResponseEntity 对象。
Callable。
DeferredResult。
其他任意类型,Spring 将其视作输出给 View 的对象模型。
本章后续会展示一个例子,以进一步学习如何开发一个请求处理方法。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论