Web.xml
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 默認查找mvc-servlet.xml -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/spring/*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
spring/servlet.xml
<mvc:annotation-driven/>
<context:component-scan base-package="com.los.mvc.controller"/>
<!-- Spring MVC 3.0 引入restFul風格 (表述性狀態轉移)-->
<!-- ViewResolver & View 映射關係-->
<!-- InternalResourceViewResolver 基於resource對jsp/jstl的支持 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
<!-- InternalResourceViewResolver viewClass默認值就是JstlView -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
</bean>
<!-- 攔截器配置 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/user/*"/>
<bean class="com.los.mvc.interceptor.MyInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
<!-- 國際化配置 -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<!-- <property name="basename" value="message"></property> -->
<property name="basenames">
<list><value>message</value></list>
</property>
</bean>
Controller class
import java.text.SimpleDateFormat; import java.util.Date;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.ServletRequestDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod;
@RequestMapping(value = "/test") @Controller public class TestController { @RequestMapping(value = "/start/{name}/{age}") public String start(@PathVariable(value = "name") String name, @PathVariable(value = "age") String age, HttpServletRequest request, HttpServletResponse response) { System.out.println(name + " : " + age); return "start"; }
@RequestMapping(value = "/domethod", method = RequestMethod.GET) public String doMethod1(HttpServletRequest request, HttpServletResponse response) { System.out.println("Get ..."); return "doGet"; }
@InitBinder() public void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception { binder.registerCustomEditor(Date.class, new CustomDateEditor( new SimpleDateFormat("yyyy-MM-dd"), true)); } }
Interceptor class
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;
public class MyInterceptor implements HandlerInterceptor {
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { // TODO Auto-generated method stub System.out.println("MyInterceptor afterCompletion()..."); }
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView mav) throws Exception { // TODO Auto-generated method stub System.out.println("MyInterceptor postHandle()..."); }
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // TODO Auto-generated method stub System.out.println("MyInterceptor preHandle()..."); return true; } }
@RequestMapping(value = "/test")
@Controller
class{
@RequestMapping(value = "/start/{name}")
method(@PathVariable String name ,request,response)
}
@InitBinder()
public void initBinder(HttpServletRequest request,
ServletRequestDataBinder binder) throws Exception {
binder.registerCustomEditor(Date.class
,new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
}
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/user/*"/>
<bean class="com.los.mvc.interceptor.MyInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
public class MyInterceptor implements HandlerInterceptor
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames"
<list>
<value>message</value>
</list>
</property>
</bean>