您的位置:首页 > 编程语言 > Java开发

spring-mvc+ajax+json

2017-08-29 18:53 253 查看

版本问题

spring-mvc的版本不同,给它提供JSON支持的jar包也不同。

如果使用spring-mvc 3.的版本,程序应引入1.版本的json包。



如果使用spring-mvc 4.的版本,程序应引入2.版本的json包。



如果版本不对应,会引起415错误。

spring mvc配置文件(spring-servlet)

<context:component-scan base-package="com.hs.controller"/>
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=".jsp"/>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
</bean>


简单JSON测试

function testSimpleJson() {
var ToT = '<%=request.getContextPath()%>';
var cfg = {
type: 'POST',
dataType: 'JSON',
data: JSON.stringify({userid: 123}),
contentType: 'application/json;charset=UTF-8',
success: function(result, status) {
layer.alert(status);
},
error: function(e, status) {
layer.alert(status);
}
};
cfg.url = ToT + '/user/check.do';
$.ajax(cfg);
}


@RequestBody注解,自动完成JSON字符串到POJO的转换。

@ResponseBody注解,将方法的返回值(可以是复杂java对象),通过适当的HttpMessageConverter转化成一定格式的数据,并将数据写入Response的body区。使用时机:请求返回不是html页面,而是其格式的数据的时候使用。

@Controller
@RequestMapping(value = "/json")
public class JsonController {

@RequestMapping(value = "/simple_test")
@ResponseBody
public User simpleTest(@RequestBody User user) {
System.out.println(user.getUserid());
User userb = new User();
userb.setAge(10);
userb.setUserid(user.getUserid());
return userb;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc