第一种:通过URL对应Bean
<!-- 配置handlerMapper 映射器 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<!-- 配置请求和处理 -->
<bean name="/hello.do" class="spring.mvc.controller.HelloController"/>
以上配置,访问/hello.do就会寻找ID 为/hello.do的bean,这类方式适用与小型系统
第二种:为URL分配Bean
使用一个统一的配置集合,对各个URL对应的Controller做关系映射
HelloController.java
package springmvc.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloController implements Controller {
//实现接口
@Override
public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
// TODO Auto-generated method stub
ModelAndView mv = new ModelAndView();
mv.addObject("msg", "hello springmvc controller");
mv.setViewName("hello");
return mv;
}
}
mvc.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<!-- key对应url的请求名,value对应处理器的id -->
<props>
<prop key="/hello.do">helloController</prop>
</props>
</property>
</bean>
<bean id="helloController" class="springmvc.controller.HelloController"></bean>
</beans>
第三种:URL分配Bean
如果定义Controller名称规范,也可以使用如下配置:
<!-- 将hello*.do交给helloController处理 -->
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
<bean id="helloController" class="springmvc.controller.HelloController"></bean>
第四种: 注解
<!-- 注解扫描 -->
<context:component-scan base-package="springmvc.annocation.controller"/>
Controller代码中要写对应的注解:
package springmvc.annotation.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 resp) {
ModelAndView mv = new ModelAndView();
// 封装要显示到视图中的数据
mv.addObject("msg", "hello springmvc annocation");
// 视图名
mv.setViewName("hello");
return mv;
}
}