第二讲 Controller配置汇总

来源:互联网 发布:口红哪个牌子好 知乎 编辑:程序博客网 时间:2024/05/16 18:10
一、通过URL对应Bean

     <!-- 配置HandlerMapping -->
     <bean class = "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
     <!-- 配置请求和处理器 -->
     <bean name = "/hello.do" class = "com.liujie.controller.HelloController"></bean>

以上配置,访问/hello.do就会寻找name/id为/hello.do的Bean,此类方式只适应于小型的应用系统。此类配置还可以使用通配符

二、为URL分配Bean

      <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
          <property name="mappings">
                <props>
                     <!-- key对应url请求名,value对应处理器的id -->
                     <prop key="/hello.do">helloController</prop>
                </props>
          </property>
      </bean>
      <bean id="helloController" class="com.liujie.controller.HelloController"></bean>

此类配置还可以使用通配符(类似/*.do这种),访问/hello.do时,Spring会把请求分配给helloController进行处理。

三、URL匹配Bean

      <!-- 将hello*.do交给helloController处理 -->
      <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
      <!-- 请求为hello*.do都将被匹配 -->
      <bean id="helloController" class="com.liujie.controller.HelloController"></bean>

四、注解

     <!-- 扫描该包下的注解 -->
     <context:component-scan base-package="com.liujie.controller"></context:component-scan>

Controller代码中要写对应的注解。

@Controller
public class HelloController {

     @RequestMapping(value="/hello")
     public ModelAndView handleRequest(HttpServletRequest request,
                HttpServletResponse response) throws Exception {
           ModelAndView mv = new ModelAndView();
           mv.setViewName("hello");
           mv.addObject("msg", "Hello, spring mvc!");
           return mv;
     }

}