第2章 Controller-Spring MVC开发技术指南-陈恒-清华大学出版社
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
public String register() {
return "registing MVC开发技术指南
清华大学出版社
2.1.3 编写请求处理方法
在控制类中每个请求处理方法可以有多个不同类型的参数, 以及一个多种类型的返回结果。
1.请求处理方法中常出现的参数类型 如果需要在请求处理方法中使用Servlet API类型,那么可以
将这些类型作为请求处理方法的参数类型。
@RequestMapping("/login")
public String login(HttpSession session,
HttpServletRequest request) {
} 除了Servlet API参数类型外,还有输入输出流、表单实体类、
注解类型、与Spring框架相关的类型等等,这些类型在后续章节 中使用时再详细介绍。但特别重要的类型是 org.springframework.ui.Model类型,该类型是一个包含Map的 Spring框架类型。每次调用请求处理方法时,Spring MVC都将创 建org.springframework.ui.Model对象。
无限挑战 无限飞翔
Spring MVC开发技术指南
清华大学出版社
2.1.2 RequestMapping注解类型
需要使用org.springframework.web.bind.annotation.RequestMapping 注解类型将请求与处理方法一一对应。
1.方法级别注解
2.类级别注解
无限挑战 无限飞翔
无限挑战 无限飞翔
Spring MVC开发技术指南
清华大学出版社
2.1.1 Controller注解类型
在Spring MVC中,使用 org.springframework.stereotype.Controller注解类型声明某类的实 例是一个控制器。Controller注解示例代码如下:
package controller;
Spring MVC开发技术指南
清华大学出版社
1.方法级别注解
package controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class IndexController {
import org.springframework.stereotype.Controller; //“@Controller”表示IndexController的实例是一个控制器
@Controller
public class IndexController { //处理请求的方法
} 在Spring MVC中,使用扫描机制找到应用中所有基于注解的控制 器类。所以,为了让控制器类被Spring MVC框架扫描到,需要在配置 文件中声明spring-context,并使用<context:component-scan/>元 素指定控制器类的基本包(请确保所有控制器类都在基本包及其子包 下)。
@RequestMapping(value = "/index/login") public String login() {
return "login";//login代表逻辑视图名称 } @RequestMapping(value = "/index/register") public String register() {
return "register"; } }
无限挑战 无限飞翔
Spring MVC开发技术指南
清华大学出版社
2.类级别注解
package controller;
import org.springframework.stereotype.Controller;
import
org.springframework.web.bind.annotation.RequestMapping;
无限挑战 无限飞翔
Spring MVC开发技术指南
清华大学出版社
2.1.3 编写请求处理方法
2.请求处理方法常见的返回类型 最常见的返回类型,就是代表逻辑视图名
称的String类型,如前面章节中的请求处理方法。 除了String类型外,还有ModelAndView(如第 一章的传统控制器)、Model、View以及其他任 意的Java类型。
第2章 Controller
主要内容 基于注解的控制器 编写请求处理方法 Controller接收请求参数的方式 重定向和转发 应用@Autowired和@Service进行依赖注入 @ModelAttribute
无限挑战 无限飞翔
Spring MVC开发技术指南
清华大学出版社
2.1 基于注解的控制器
在使用Spring MVC进行Web应用开发时,Controller是Web 应用的核心。Controller实现类包含了对用户请求的处理逻辑,是 用户请求和业务逻辑之间的“桥梁”,是Spring MVC框架的核心部 分,负责具体的业务逻辑处理。
使用基于注解的控制器,具有如下两个优点: 1.在基于注解的控制器类中,可以编写多个处理方法,进而
@Controller
@RequestMapping("/index")
public class IndexController {
@RequestMapping("/login")
public String login() {
return "login";
}
@RequestMapping("/register")
可以处理多个请求(动作)。这就允许将相关的操作编写在同一个控制 器类中,从而减少控制器类的数量,方便以后的维护。
2.基于注解的控制器不需要在配置文件中部署映射,仅需要 使用RequestMapping注释类型注解一个方法进行请求处理。
在Spring MVC中,最重要的两个注释类型是Controller和 RequestMapping注释类型,本章重点介绍它们。