springmvc 拦截器
继承了HandlerIntercepter的类可以作为拦截器类:
package com.yawn.intercepter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class UserIntercepter implements HandlerInterceptor {
// 最后执行的方法,释放资源
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object object, Exception exception)
throws Exception {
System.out.println("afterCompletion------->>>>>>>>");
}
// controller 执行完,生成视图之前的动作
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object object,
ModelAndView modelAndView) throws Exception {
System.out.println("postHandle------->>>>>>>>");
}
// controller 执行之前的动作
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object object) throws Exception {
System.out.println("preHandle------->>>>>>>>");
return true;
}
}
拦截器的配置:
<!-- 拦截器栈的配置 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/start.do" />
<bean class="com.yawn.intercepter.UserIntercepter"></bean>
</mvc:interceptor>
<!-- 可定义多个拦截器,形成拦截器栈 -->
<!-- <mvc:interceptor> -->
<!-- <mvc:mapping path=""/> -->
<!-- <bean></bean> -->
<!-- </mvc:interceptor> -->
</mvc:interceptors>
springmvc 国际化
在classpath下简历message.properties、message_ch_CN.properties、message_en_US.properties
然后进行如下配置,就可以在jsp中使用<spring:message code="welcome"/>来访问了 :
<!-- 国际化的配置 -->
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="message"></property>
<!-- 在classpath下搜索message.properties文件 -->
</bean>
springmvc 验证
package com.yawn.controller;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import com.yawn.po.User;
@Controller
public class TestController {
@RequestMapping(value="/start")
private String start(@Valid User user, BindingResult result) {
/*
* 1.在User前添加@valid注解后,可自动根据User类中的规则对各个字段进行验证
*
* 2.表单的验证信息都封装在result中,如果有错误,则可以从中获得错误的信息,将它返回给页面模型
*/
if (result.hasErrors()) {
return "index";
}
System.out.println(">>>>>>>>>>>>>>>>>>-------");
return "start";
}
}