专业网站建设公司兴田德润简介,俄罗斯网站设计,专做女装的网站,嘉兴seo网站建设费用处理器方法也可以返回Object对象。这个Object可以是Integer#xff0c;String#xff0c;自定义对象#xff0c; Map#xff0c;List 等。但返回的对象不是作为逻辑视图出现的#xff0c;而是作为直接在页面显示的数据出现的。 返回对象#xff0c;需要使用ResponseBody注… 处理器方法也可以返回Object对象。这个Object可以是IntegerString自定义对象 MapList 等。但返回的对象不是作为逻辑视图出现的而是作为直接在页面显示的数据出现的。 返回对象需要使用ResponseBody注解将转换后的JSON数据放入到响应体中。
实现步骤 1.在pom.xml中加入处理json的工具库的依赖springmvc默认使用的jackson 由于返回Object数据一般都是将数据转化为了JSON对象后传递给浏览器页面的。而 这个由Object转换为JSON是由消息转换器HttpMessageConverter底层使用Jackson工具完成的所以需要导入Jackson 的相关Jar包。 dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-core/artifactIdversion2.9.0/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.9.0/version/dependency 2.在springmvc配置文件中加入 mvc:annotation-driven 注解驱动: 注解驱动涉及到了消息转换器接口 !-- 注册mvc的注解驱动 -- mvc:annotation-driven/ 作用mvc:annotation-driven/在加入到springmvc配置文件后会自动创建消息转换器HttpMessageConverter接口的7个实现类对象完成java对象到json、xml、text、二进制等数据格式的转换。这里将JAVA对象转换为JSON格式的数据 ObjectMapper om new ObjectMapper(); json om.writevalueAsString(student); 3.在处理器方法的上面加入ResponseBody注解 作用通过HttpServletResponse应答对象将转换后的JSON数据放入到响应体中输出给浏览器 response.setContentType(application/json;charsetutf-8); PrintWriter pw response.getWriter(); pw.printIn(json); HttpMessageConveter接口 :消息转换器。 注解驱动涉及到了消息转换器接口。 功能:定义了java转为jsonxml二级制text等数据格式的方法。 这个接口有很多的实现类 这些实现类完成 java对象到json java对象到xmljava对象到二进制等数据的转换 mvc:annotation-driven/在加入到springmvc配置文件后会自动创建消息转换器HttpMessageConverter接口的7个实现类对象包括 MappingJackson2HttpMessageConverter ( 使用jackson工具库中的ObjectMapper实现java对象转换成json字符串 ObjectMapper om new ObjectMapper(); json om.writevalueAsString(student); Controller
RequestMapping(/data)
public class MyController4 {RequestMapping(/single.do)ResponseBodypublic Student doJsonObject(){//创建java对象转为jsonStudent student new Student(李四,22,lisiqq.com);return student;}RequestMapping(/list.do)ResponseBodypublic ListStudent doJsonArray(){//创建List对象转为jsonArrayListStudent students new ArrayList();students.add(new Student(李四,22,lisiqq.com));students.add(new Student(王五,23,wangwuqq.com));return students;}RequestMapping(value /string.do,produces text/palin;charset utf-8)ResponseBodypublic String doStringData(String name , Integer age){return 有ResponseBody注解返回String就是数据;}
}当返回值为String类型时 当处理器方法返回的是String时区分返回值String是数据还是视图就看有没有ResponseBody注解如果有ResponseBody注解返回String就是数据反之就是视图 默认使用“text/plain;charsetISO-8859-1”作为contentType,导致中文有乱码。 解决方案 RequestMapping增加一个属性 produces使用这个属性指定新的contentType设置输出结果类型。 RequestMapping(value /string.do,produces text/palin;charset utf-8)ResponseBodypublic String doStringData(String name , Integer age){return 有ResponseBody注解返回String就是数据;}