Spring MVC —— 基于注解的控制器
2016-08-25 00:00
260 查看
一、注解类型。
1.使用基于注解的控制器的优点。
一个控制器类可以处理多个动作(而一个实现了的Controller接口控制器只能处理一个动作)。基于注解的控制器请求映射不需要存储在配置文件中(使用RequestMapping注释类型)。
2.Controller注解类型。
下面是一个带有注解@Controller的例子。package com.example.controller; ... @Controller public class CustomerController{ }
Spring使用扫描机制找到程序中所有基于注解的控制器,为了保证Spring能找到,需要做完成两项工作。首先,需要在Spring MVC的配置文件中声明spring-context,如下:
<beans ... xmlns:context="http://www.springframework.org/org/schema/context" ... >
然后需要应用<component-scan/>元素,如下:
<context:component-scan base-package="com.example.controller">
需要注意,不要只盯一个太广泛的基本包,以免Spring扫描了无关的包。
3.RequestMapping注解类型
下面是一个带有@RequestMapping注释方法的控制器类:package com.example.controller; ... @Controller public class CustomerController{ @RequestMapping(value="/customer_input") public String inputCustomer(){ } }
只有一个属性时可简化为@RequestMapping("/customer_input")
如果使用POST方法时,写为@RequestMapping(value="/customer_input", method=RequestMethod.POST)
当method为多个值时,后面写为数组{method1, method2}
二、编写请求处理方法。
每个请求处理方法可以有多个不同类型的参数,下面时可以在请求处理方法中出现的参数类型:javax.servlet.ServletRequest 或 javax.servlet.HttpServletRequest
javax.servlet.ServletResponse 或 javax.servlet.httpHttpServletResponse
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<?>
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.util.UriCompontsBuilder
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的对象模型
相关文章推荐
- 【笔记】Spring MVC学习指南(四)基于注解的控制器
- Spring MVC---基于注解的控制器
- (笔记)Spring MVC学习指南_基于注解的控制器
- 基于注解的Spring MVC控制器
- Spring MVC---基于注解的控制器
- 基于注解的Spring MVC控制器
- Spring MVC---基于注解的控制器
- Spring MVC---基于注解的控制器
- Spring MVC-04循序渐进之基于注解的控制器
- spring mvc中基于注解的控制器
- Spring 2.5 JPA 基于注解驱动的 Spring MVC教程
- 使用 Spring 2.5 基于注解驱动的 Spring MVC
- 梳理3基于注解的控制器
- Spring MVC 基于注解的class文件打成jar包后注入失败
- Spring MVC 学习笔记(二) 基于spring2.5注解实现的spring MVC项目
- 基于注解的Spring MVC权限控制方法
- 基于注解的 Spring MVC 简单入门
- Spring 2.5 基于注解驱动的 Spring MVC
- 基于注解的Spring MVC整合Hibernate(所需jar包,spring和Hibernate整合配置,springMVC配置,重定向,批量删除)
- 使用 Spring 2.5 基于注解驱动的 Spring MVC