1.继承 HandlerInterceptorAdapter 适配器
public class TestInterceptor extends HandlerInterceptorAdapter
2.preHandle()方法的返回true
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
return true;
}
3.postHandle()方法获取参入的参数,返回值一般在modelandview中获取,虽然我没有获取到过
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex) throws Exception {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
HandlerMethod handlerMethod = (HandlerMethod) handler;
//获取方法的所有参数
MethodParameter[] methodParameters = handlerMethod.getMethodParameters();
for (MethodParameter m : methodParameters) {
//判断方法是否有超类,因为我需要获取的参数是有超类的
if (null!=m.getParameterType().getSuperclass()) {
//获取页面中form表单里所有具有name属性的表单对象
Enumeration<String> enu = (Enumeration<String>) request.getParameterNames();// 类型的枚举
while (enu.hasMoreElements()) {
Map<String, Object> map = new HashMap<String, Object>();
String name = (String) enu.nextElement();
//根据表单控件的name获取表单控件的value值
map.put(name, request.getParameterValues(name));
list.add(map);
}
}
}
}
后续补充,也很可能不补充