@Controller的几种配置
1、通过URL对应Bean
<!-- 配置handlermapping -->
<bean
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<!-- 配置请求和处理器 -->
<bean name="/hello.do" class="cn.sxt.controller.HelloController"/>
如果配置HandlerAdapter则do可以不写
控制层要实现Controller接口。
以上配置,访问/hello.do就会寻找id为/hello.do的Bean,此类方式仅适用小型的应用系统
2、为URL分配Bean
使用一个统一配置集合,对各个URL对应的Controller做关系映射
<!--最常用的映射配置方式-->
<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="cn.sxt.controller.HelloController"></bean>
3、URL匹配Bean
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
<!-- 请求为hello*.do都将被匹配 -->
<bean id="helloController" class="cn.sxt.controller.HelloController"/>
4、注解
<context:component-scan base-package="cn.sxt.controller"/>
在Controller代码中,要写对应的注解
@Controller
public class HelloController {
@RequestMapping("/hello")
public ModelAndView hello(HttpServletRequest req,HttpServletResponse res){
ModelAndView mv = new ModelAndView();
mv.addObject("msg", "hello springmvcc");
mv.setViewName("hello");
return mv;
}
}
1、通过URL对应Bean
<!-- 配置handlermapping -->
<bean
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<!-- 配置请求和处理器 -->
<bean name="/hello.do" class="cn.sxt.controller.HelloController"/>
如果配置HandlerAdapter则do可以不写
控制层要实现Controller接口。
以上配置,访问/hello.do就会寻找id为/hello.do的Bean,此类方式仅适用小型的应用系统
2、为URL分配Bean
使用一个统一配置集合,对各个URL对应的Controller做关系映射
<!--最常用的映射配置方式-->
<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="cn.sxt.controller.HelloController"></bean>
3、URL匹配Bean
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
<!-- 请求为hello*.do都将被匹配 -->
<bean id="helloController" class="cn.sxt.controller.HelloController"/>
4、注解
<context:component-scan base-package="cn.sxt.controller"/>
在Controller代码中,要写对应的注解
@Controller
public class HelloController {
@RequestMapping("/hello")
public ModelAndView hello(HttpServletRequest req,HttpServletResponse res){
ModelAndView mv = new ModelAndView();
mv.addObject("msg", "hello springmvcc");
mv.setViewName("hello");
return mv;
}
}