1. 程式人生 > >SpringMVC學習(四)

SpringMVC學習(四)

攔截器及資料型別轉換

攔截器:

1.實現HandlerInterceptor介面

public class myinterceptor1 implements HandlerInterceptor {

	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		// 執行Handler完成之後執行
		System.out.println("執行Handler完成之後執行");
	}

	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {
		// 處理器執行之後,返回ModelAndView之前執行
		System.out.println("處理器執行之後,返回ModelAndView之前執行");
	}

	@Override
	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
		// 處理器執行之前
		System.out.println("這是在處理器執行之前");
		return true;
	}

}

2.springmvc.xml配置

		<mvc:interceptors>
			<mvc:interceptor>
				<mvc:mapping path="/**"/><!--攔截所有url訪問 -->
				<bean class="com.test.interceptor.myinterceptor1"></bean>
			</mvc:interceptor>
		</mvc:interceptors> 		
 		

這樣配置就可以了

3:資料型別轉換

springmvc無法自行轉換date,Integer,double等資料型別,需要我麼自行去定義。

需要運用@InitBinder註釋

	@InitBinder
    public void initBinder(ServletRequestDataBinder binder){
    	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        binder.registerCustomEditor(Date.class, new CustomDateEditor(sdf,
                true));
    }