如果您没用过sping3下用ajax交互json,可能看不懂下边的用法。
用过的同志有遇到过这种情况吗,请帮助解决!网上的办法也找了一些都不行,关键没有相关sping3下的这种情况,有说把dataType : 'json'注掉等等,都试了不管用。
Controller代码:
@RequestMapping(value="/sendemail", method = RequestMethod.POST)
@ResponseBody
public ShareEmail testSendMail(@RequestBody ShareEmail shareEmail){
//接收前台传过来的 json数据,封闭为shareEmail对象
String emailTo = shareEmail.getEmail();
String message = shareEmail.getMessage();
//利用接收到的数据,实现逻辑
SyncUtil.sendSimpleMailMessage(emailTo, message);
//因为有@ResonseBody,可以将返回值返回给页面
return shareEmail;
}
ajax代码:
$.ajax({
type : 'POST',
contentType : 'application/json',
url : '${contextPath}/edisk/sendemail',
data : jsonShareFormInfo,
dataType : 'json',
//下面的success不执行,不知道为什么,怀疑spring3在转化返回值为json对象时格式不对。
success : function(data){
alert(data.message);
//alert("发送成功");
},
error : function(data){
alert(data.message);
}
});
配置文件的写法:
<!-- spring3在接收contentType为application/json的request时会自动将json字串间转换成期望 的java对象,
基于Jackson JSON Processor(http://jackson.codehaus.org/),返回时负责将数据转换成JSON格式-->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
学习了
------解决方案--------------------------------------------------------支持lz概念基本上就错误。