spring-mvc+ajax+json

来源:互联网 发布:淘宝vpn 编辑:程序博客网 时间:2024/06/10 18:40

版本问题

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;    }