个人学习参考所用,勿喷!
2.控制器和URL映射描述。
DispatcherServlet作为Spring MVC的入口在接受到一个web请求的时候,会根据应用发布时候所扫描到的控制器和URL之间的映射来选择不同的目的处理函数。这个过程依靠的是控制器类和其处理方法中声明的各种格式的@RequestMapping主机来控制的。@RequestMapping是定义请求映射策略的注解。
2.1) 按照方法匹配请求。@RequestMapping注解简单的时候就是直接修饰在每个处理程序方法:
@Controller
public class MemberController {
private MemberService memberService;
// Wire service in constructor, available in application context
@Autowired
public MemberController(MemberService memberService) {
this.memberService = memberService;
}
// 程序方法映射到URL "/member/add",使用默认GET方法。
@RequestMapping("/member/add")
public String addMember(Model model) {
model.addAttribute("member", new Member());
model.addAttribute("guests", memberService.list());
// Return view memberList. Via resolver the view
// will be mapped to /WEB-INF/jsp/memberList.jsp
return "memberList";
}
// 程序方法映射到 URL "/member/remove" 或者 "/member/delete", 明确指定使用GET方法
@RequestMapping(value={"/member/remove","/member/delete"},method=RequestMethod.GET)
public String removeMember(@RequestParam("memberName") String memberName) {
memberService.remove(memberName);
return "redirect:";
}
}
这个理要需要注意的是第二种用法中,@RequestMapping的value可以映射到多个URL。
2.2)按照类映射请求。@RequestMapping注解也可以修饰控制器类。可以使得控制器方法不需要再使用指定@RequestMapping的value值,或者用来使控制器的方法的@RequestMapping注解实现更细粒度的URL。@RequestMapping同时也支持广泛意义上的“*”通配符。
@Controller
// Bind controller to all URLs under/member/*
// initial view will be resolved to the name returned in the default GET method
@RequestMapping("/member/*")
public class MemberController {
// 程序方法映射到URL "/member/add",使用默认GET方法。
@RequestMapping("add")
public String addMember(Model model) {
...
}
// 程序方法映射到 URL "/member/remove" 或者 "/member/delete", 明确指定使用GET方法
@RequestMapping(value={"remove","delete"},method=RequestMethod.GET)
public String removeMember(@RequestParam("memberName") String memberName) {
....
}
// 程序方法映射到 URL "/member/display/{user}", 这里的user是必选的REST风格的{path_variable}参数
@RequestMapping(value="display/{user}",method=RequestMethod.GET)
public String displayMember(@PathVariable("user") String user) {
....
}
// 全能方法,处理 URL "/member/*" 映射,使用默认GET方法。
// void类型返回值将指向方法的同名视图(memberList)
@RequestMapping
public void memberList() {
...
}
//相当于一个工具方法,对MVC没有影响
public void memberLogic() {
...
}
}
2.3)按照HTTP请求类型映射请求。默认情况下@RequestMapping假定请求是HTTP GET类型。如果不是那么就需要明确说明:
@Controller
@RequestMapping("/member/*")
public class MemberController {
// 程序方法映射到URL "/member/*",使用HTTP POST方法。
@RequestMapping(method=RequestMethod.GET)
public String addMember(Model model) {
...
}
// 程序方法映射到URL "/member/remove",使用HTTP POST方法。
@RequestMapping("remove",method=RequestMethod.POST)
public String removeMember(Model model) {
...
}
}
参考:
juyon的blog:《spring3 MVC国际化支持之中文乱码》
Gary Mark等的书籍:《Spring Recipes》2ed
分享到:
相关推荐
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
Spring教程合集.zip Spring开发指南 SpringGuide 在Spring中配置Hibernate事务 Struts+Spring+Hibernate开发实例 Struts+Hibernate+Spring练习 Struts+Spring+Hibernate快速入门 ...Spring Framework最佳实践
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
你想掌握分析源代码的最佳实践吗?..., 本书赞誉:, 作为一个有近10年历史的成功框架,Spnng在Java开发中具有举足轻重的作用。本书从源代码分析入手,对Spring的架构原理和设计思想进行了全面剖析,不仅能让我们更...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
它详细介绍了Java编程中的有效实践和最佳实践,如何避免常见的错误和陷阱。 《深入理解Java虚拟机》:这本书是Java虚拟机编程的经典教材,适合中级和高级开发者。它详细介绍了Java虚拟机的原理和内部实现,以及如何...
通过实践,逐步掌握SSM框架的使用技巧和Java Web开发的最佳实践。 参考项目文件和笔记:项目文件和笔记提供了丰富的背景信息和开发经验。在学习的过程中,不妨参考这些资料,以帮助你更好地理解和学习。 动手实践:...
通过实践,逐步掌握SSM框架的使用技巧和Java Web开发的最佳实践。 参考项目文件和笔记:项目文件和笔记提供了丰富的背景信息和开发经验。在学习的过程中,不妨参考这些资料,以帮助你更好地理解和学习。 动手实践:...
通过实践,逐步掌握SSM框架的使用技巧和Java Web开发的最佳实践。 参考项目文件和笔记:项目文件和笔记提供了丰富的背景信息和开发经验。在学习的过程中,不妨参考这些资料,以帮助你更好地理解和学习。 动手实践:...
通过实践,逐步掌握SSM框架的使用技巧和Java Web开发的最佳实践。 参考项目文件和笔记:项目文件和笔记提供了丰富的背景信息和开发经验。在学习的过程中,不妨参考这些资料,以帮助你更好地理解和学习。 动手实践:...
通过实践,逐步掌握SSM框架的使用技巧和Java Web开发的最佳实践。 参考项目文件和笔记:项目文件和笔记提供了丰富的背景信息和开发经验。在学习的过程中,不妨参考这些资料,以帮助你更好地理解和学习。 动手实践:...
通过实践,逐步掌握SSM框架的使用技巧和Java Web开发的最佳实践。 参考项目文件和笔记:项目文件和笔记提供了丰富的背景信息和开发经验。在学习的过程中,不妨参考这些资料,以帮助你更好地理解和学习。 动手实践:...