前端使用AJax 发送数据到后台,后台接受数据
上代码:
maven:
<!-- Json -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.7.0</version>
</dependency>
<!--json的jar包 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
在Spring配置文件下添加Json
<!-- 配置json数据 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJackson2HttpMessageConverter" /> </list> </property> </bean> <bean id="mappingJackson2HttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>text/json;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean>
前端使用Jaon 需要添加 JQuery
JSP页面添加 jQyery
<%--引入C标签--%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%--开启EL表达式 Jsp默认 关闭的--%>
<%--<%@ page isELIgnored="false"%>--%>
<c:set var="ctx" value="${pageContext.request.contextpath}"/>
<script type="text/javascript">
var contextRootPath = "${ctx}";
</script>
<%--引入jquery框架--%>
<script src="${ctx}/jQuery/jquery-1.4.2.js"></script>
<script
src="${ctx }/jQuery/jquery.js" type="text/javascript">
</script>
准备完成 ,开始 ajax
一个简单的表单
<form id="form">
<input type="text" id="in"> <br>
<span id="sp"></span> <br>
<input type="button" id="button">
</form>
使用 jQuery
<script type="text/javascript">
$(document).ready(function () {
$("#in").focus(function () {
});
$("#button").click(function () {
var ins = {ins : $("#in").val()};
$.ajax({
type:"POST",url:"${pageContext.request.contextpath}/click.action",dataType:"json",contentType:"application/json; charset=utf-8",data:JSON.stringify(ins),success:function (data) {
window.location.href = "/WEB-INF/page/welcome.jsp";
$("#in").val("");
},error:function () {
}
});
});
});
</script>
可能出现的错误
有时候因为没有log信息 ,不知道是什么错,浏览器只是出现一个白页面,没有内容,那么就打开浏览器的控制台(火狐的是F12),查看网络信息,看一下HTTP错误
1, 415 unsupported media type
这个是因为
dataType:"json",
这两句话 没有加上 ,因为默认是不支持这种形式的,需要自己扩展,
2,400错误:
传的参数是否跟后台@resquestbody参数一一 对应(List前台是数组),还有是否加上了jackson的四个jar包,spring3.0和3.1.1不支持jackson 2.x 3.1.3支持
3,500 internal server error
后台没有接收到json信息 ,看一下 是不是获取的时候,key是不是错了
后台获取信息
@Controller
public class FormClickController {
@ResponseBody
@RequestMapping("/click.action")
public void click(@RequestBody JSONObject jsondata ) {
System.out.println("============================================>>>>"+jsondata.getString("ins"));
}
}
相关文章
http://blog.csdn.net/mr_li13/article/details/51636574