1、重定向传递数据
addAttribute:参数拼接在路径上
addFlashAttribute:不会把参数拼接到路径上,存在session中
用RedirectAttributes,不能使用model,因为model封装在request中
SpringMVC对json数据处理
SpringMVC通过@RequestBody注解实现将json格式的数据转成java对象
通过@ResponseBody将java对象转成json格式的数据输出
html页面通过ajax请求后台完成异步访问操作
<body>
<input type="text" id="username" name="username"/>
<font id="user"></font>
<script>
$(function () {
$("#username").blur(function () {
var username=$(this).val();
$.post("user/regist.do",{"username":username},function (data) {
$("#user").html(data.message);
},"json")
})
})
</script>
</body>
后台接受之后返回一个jsonResult的对象,这时需要通过@ResponseBody注解来转成json格式
@ResponseBody
public jsonResult regist(String username){
if(username.equals("tom")){
return new jsonResult(false,"被占用");
}
return new jsonResult(true,"可注册");
}
SpringMVC拦截器的定义
首先定义一个类作为拦截器,继承HanlderInterceptor,重写父类的方法
public class UserInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
System.out.println("pro");
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}
拦截器的配置,在springmvc.xml中
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/test.do"/>
<bean class="com.gh.interceptor.UserInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>