返回介绍

4.2 编写请求处理方法

发布于 2025-04-22 20:09:59 字数 2444 浏览 0 评论 0 收藏

每个请求处理方法可以有多个不同类型的参数,以及一个多种类型的返回结果。例如,如果在请求处理方法中需要访问 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 的对象模型。

本章后续会展示一个例子,以进一步学习如何开发一个请求处理方法。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。