Springmvc中ajax与jason应用
相关依赖包
json数据转换的jar包
jackson-annotations-2.5.4
jackson-core-2.5.4
jackson-databind-2.5.4
spring以及spring的依赖包
bean context aop context core web webmvc expression
未涉及json的ajax请求
简单的表单验证
Controller层java代码
@Controller
public class AjaxCtrl {
@RequestMapping("/toAjax.do")
public String toAjax() {
return "ajax";
}
@RequestMapping("/ajax.do")
@ResponseBody
public void ajaxJson(@RequestParam("name")String name,HttpServletResponse resp) throws IOException {
PrintWriter out = resp.getWriter();
if(name.equals("hm"))
out.print("该用户已注册");
else
out.print("该用户可使用");
}
注意点:
- 在手动调用getWriter()方法时不可以再添加返回值,否则tomcat会报错(getWriter()方法已存在)。因为在返回值处容器会自动调用getWriter()方法来输出内容,而检测到前面getWriter()已经被调用过,产生冲突。
- 解决:1. 像上面的代码不给出返回值;2. resp.reset(); resp.setContentType(“text/html; charset=utf-8”); out.flush; out.close();
- @ResponseBody会将返回的数据自动转换为json格式的数据
相关jsp代码:ajax.jsp
<script src="${pageContext.request.contextPath }/js/jquery-2.1.0.min.js" type="text/javascript"></script>
</head>
<body>
姓名:<input type="text" id="field" name="name" /><span id="txt"></span>
<script type="text/javascript">
$("#field").blur(function(){
$.post("ajax.do",{
'name':$('#field').val()},function(result){
$("#txt").html(result);
})