Springmvc 4.x利用@ResponseBody返回Json数据的方法

时间:2021-05-02

下面是官方文档对于@responsebody注解的解释:

? 1 2 3 4 5 6 7 8 9 10 11 12 mapping the response body with the @responsebody annotation the @responsebody annotation is similar to @requestbody. this annotation can be put on a method and indicates that the return type should be written straight to the http response body (and not placed in a model, or interpreted as a view name). for example: @requestmapping(path = "/something", method = requestmethod.put) @responsebody public string helloworld() { return "hello world"; } the above example will result in the text hello world being written to the http response stream. as with @requestbody, spring converts the returned object to a response body by using an httpmessageconverter. for more information on these converters, see the previous section and message converters.

@resopnsebody注解能够 直接把 控制器返回变量(string)直接 返回给浏览器,也可以通过配置 后,把 对象 序列化成json数据返回给浏览器!如果为 null 就会返回空白。

怎么配置呢 ?需要配置messageconverter:

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <bean class="org.springframework.web.servlet.mvc.annotation.annotationmethodhandleradapter"> <property name="messageconverters"> <list> <ref bean="mappingjackson2httpmessageconverter" /> </list> </property> </bean> <bean id="mappingjackson2httpmessageconverter" class="org.springframework.http.converter.json.mappingjackson2httpmessageconverter"> <property name="supportedmediatypes"> <list> <value>text/html;charset=utf-8</value> <value>text/json;charset=utf-8</value> <value>application/json;charset=utf-8</value> </list> </property> </bean>

下面贴出在官方文档中的位置:

这个需要jackson jar包支持,需要 jackson-annotations,jackson-core,jackson-databind三个包,:

控制器代码:

? 1 2 3 4 5 6 7 @requestmapping("house/classmanager/addbyajax") @responsebody public hanblog_class classmanager_addbyajax(httpservletrequest request){ if(request.getsession().getattribute("hanblog_uid")==null) return null; hanblog_class objclass=new hanblog_class(); return objclass; }

jquery代码:

? 1 2 3 4 5 6 7 8 9 //|增加 $("#hanblog_add_btn").click(function(){ var classname=$("#add_input_name").val(); var classintroduction=$("#add_input_introduction").val(); alert("分类名称:"+classname+"分类介绍:"+classintroduction); $.get("<c:url value="/house/classmanager/addbyajax.do" />",function(result){ alert(result); }); });

运行返回例子:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/u012997311/article/details/51982461

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章