灵活一点的 Spring MVC 的 Url Mapping

 

Spring MVC 中常见的 URL Mapping 有两种 BeanNameUrlHandlerMappingSimpleUrlHandlerMapping 。但是使用这两种 UrlHandlerMapping 都有不足。前者只能将 Url 定位到 Class 级别;后者缺乏灵活性。

 

在 Spring 2.5 的 MVC 中,有了 @RequestMapping。它能够将 Url Mapping 对应到 Method 级别。但直接将 Url 对应到 Method 也不是很好的方式。

 

其实,将 @RequestMapping 和传统的 UrlHandlerMapping 结合使用,我们就能够得到一个较为理想的解决方案。通过使用 ControllerBeanNameHandlerMapping 或 ControllerClassNameHandlerMapping,我们能够将 Url 对应到 Controller 级别,这只是 Url 中的一级。通过 @RequestMapping,我们可以将最终的 Url 对应到 Method 上。

 

举个例子:

 

@Controller
public class TestController extends BaseController {
	@RequestMapping
	public void create() {
	}
}

 

Spring 配置:

 

<context:component-scan base-package="com.xxx.xxx" />
	
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />
	
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
		

 

通过这些代码,我们就可以将 app_root/test/create.(do) (.do 是可换的,这取决于 web.xml 的配置) 对应到 TestController 的 create 方法上了。但是,目前这种 Url Mapping 方式还不能处理 Method overload。

你可能感兴趣的:(spring,bean,Web,mvc,servlet)