springmvc4.0配置ajax请求json格式数据

时间:2022-10-07 16:07:54

1.导入相关jar包:jackson-annotation-2.5.4.jar,jackson-core-2.5.4.jar,jackson-databind-2.5.4.jar.

2.spring-servlet.xml中相关配置:

//命名空间加入mvc:
xmlns:mvc="http://www.springframework.org/schema/mvc"

//xsi:schemaLocation中补充:
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd

<!-- springmvc4.0的配置方法-->

<!--
启动注解驱动的mvc功能--><mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"/>
<context:annotation-config/>
<bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
<property name="favorPathExtension" value="false"></property>
</bean>
<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
<bean id="stringConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonConverter"/>
<ref bean="stringConverter"/>
</list>
</property>
</bean>

3.编辑代码

  单击btn,触发ajax,调用controller方法,返回json格式数据,并将其显示在页面

  3.1  jsp代码表单部分:

<div id="showData">${msg}</div>

<form id="paging">
page:
<input type="text" name="page" id="page"/>
rows:
<input type="text" name="rows" id="rows"/>
<input id="sub" type="button" value="submit"/>
</form>

  3.2  js代码ajax部分:

$('#sub').click(function(){
alert(
"111");
$.ajax({
type:
"POST",
url:
"sysLogPaging.do",
data:{
"page":$("#page").val(),
"rows":$("#rows").val()
},
dataType:
"json",
success:
function(data){
var dataajax=JSON.stringify(data); //将json对象数据转为string类型,以便在页面输出
$("#showData").html(dataajax).show();
},
error:
function(){
alert(
"出错");
}
});
});

  3.3  java  controller被调用部分代码:

@RequestMapping(value="/sysLogPaging", method=RequestMethod.POST)//分页调用函数,返回类型是JSONObject
@ResponseBody //必须写,标示传送流数据
public JSONObject getSystemLog_paging(String page,String rows){
toJson syslogjson
= new toJson(); //自定义的tojson类,用于拼接项目所需的特定格式的json数据
return syslogjson.toJson(sysloglist,page,rows);
}

总结:1.所需jar包必须导入,关于配置,springmvc4.0和3.0有所差别,需要注意。

     2.如果传送流数据(string,json等格式)controller中 @ResponseBody 不可省略。

     3.要将ajax获取的json对象数据返回到页面相应位置,需调JSON.stringify();函数将对象转为string型再行show()。