在这里我介绍4种关于controller配置的方式
前面的两种方式,都是我们之前那两个项目使用的方式。
1.URL对应Bean
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<bean name="/hello.do" class="com.xgc.controller.HelloController"></bean>
复制代码
上面的配置,访问/hello.do就会寻找name为/hello.do的Bean,这种方式仅适用于小型的应用系统
2.注解
<mvc:annotation-driven />
<context:component-scan base-package="com.xgc.controller" />
#HelloController.java
package com.xgc.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController{
@RequestMapping("/hello")
public ModelAndView hello(HttpServletRequest req, HttpServletResponse res) {
ModelAndView mv=new ModelAndView();
mv.addObject("msg","hello annotation");
mv.setViewName("hello");
return mv;
}
}
复制代码
3.为URL分配Bean
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello.do">helloController</prop>
</props>
</property>
</bean>
<bean name="helloController" class="com.xgc.controller.HelloController"></bean>
复制代码
在这里我们使用一个统一配置集合,对各个URL对应的Controller做关系映射。
访问/hello.do时,Spring会把请求分配给helloController进行处理。
4.URL匹配Bean
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
</bean>
<bean name="helloController" class="com.xgc.controller.HelloController"></bean>
复制代码
请求为hello*.do
都将被匹配