本篇文章给大家谈谈SpringMVC@ResponseBody返回json的问题,以及springmvc中返回json数据的知识点,同时本文还将给你拓展easyuiajax请求获取SpringMVC@
本篇文章给大家谈谈SpringMVC @ResponseBody返回json的问题,以及springmvc中返回json数据的知识点,同时本文还将给你拓展easyui ajax请求获取SpringMVC @ResponseBody返回Json数据、Spring MVC 3:通过@ResponseBody返回XML、spring mvc 使用@ResponseBody注解返回json字符串、Spring mvc 注解@ResponseBody 返回内容编码问题等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- SpringMVC @ResponseBody返回json的问题(springmvc中返回json数据)
- easyui ajax请求获取SpringMVC @ResponseBody返回Json数据
- Spring MVC 3:通过@ResponseBody返回XML
- spring mvc 使用@ResponseBody注解返回json字符串
- Spring mvc 注解@ResponseBody 返回内容编码问题
SpringMVC @ResponseBody返回json的问题(springmvc中返回json数据)
如图我返回一个Map 并有注解 @ResponseBody,按理说访问这个方法,应该会返回一个json给我
但是我访问过后,却返回一个找不到jsp404的页面给我,如下图
请问是怎么回事 谢谢
easyui ajax请求获取SpringMVC @ResponseBody返回Json数据
controller层代码 @RequestMapping(value = "/list.htm") @ResponseBody private Object geUserList() { ParamCondition paramCondition = getParamCondition(); PageModel pageModel = getPageModel(); userService.list(pageModel,paramCondition); return setPageData(1,pageModel.getRows()); } protected Map<String,Object> setPageData(long total,Object rows) { HashMap<String,Object> result = new HashMap<String,Object>(); result.put("total",total); result.put("rows",rows); return result; } easyui 前台请求,下面为datagrid url请求: $('#dg').datagrid({ url:$WEB_ROOT_PATH + '/user/list.htm',toolbar: '#tb',fit: true,pagination: true,rownumbers: true,singleSelect: true,columns:[[ {field:'ck',checkBox: true },{field:'username',title:'用户名',width:100},{field:'password',title:'密码',width:100} ]],}); SpringMVC需要添加该配置: <!-- 完成请求和注解POJO的映射 --> <bean id="jsonConverter"></bean> <bean> <property name="messageConverters"> <list> <ref bean="jsonConverter"/> </list> </property> </bean> 需要jackson-core-asl-1.9.13.jar 、jackson-mapper-asl-1.9.13这两个jar包。 参考以下链接: http://www.zuidaima.com/question/2205744784018432.htm http://www.thinksaas.cn/group/topic/335349/
Spring MVC 3:通过@ResponseBody返回XML
如何解决Spring MVC 3:通过@ResponseBody返回XML?
这可以通过在Spring上下文中添加以下魔术来实现(请参阅docs):
<mvc:annotation-driven/>
其中包括:
如果类路径中存在JAXB,则支持读写XML。
如果检测到JAXB(即,如果您使用Java6,或者在类路径上具有某些JAXB实现),它将Jaxb2RootElementHttpMessageConverter
在上下文中注册a
,并提供从@ResponseBody
-annotated方法的返回值中吐出XML的能力。。
注意:您的问题排序建议建议使用a ViewResolver
来呈现XML,但这不是必需的。该@ResponseBody
注释被设计成旁路完全视图层。
解决方法
请原谅我发布这个菜鸟问题,但是我已经调试了很长时间了。我在尝试获取响应以基于对象返回XML时遇到一些问题:-
@RequestMapping(value = "/mylink",method = RequestMethod.GET)
public @ResponseBody SomeObject doIt() {
...
}
现在,即使调用了该API,我的客户端也根本没有收到XML响应。我读过一些地方,似乎需要配置XML
marshaller或某种XML解析器,但是我不确定如何将其集成到我的现有配置中。我目前在servlet.xml中具有以下配置:-
<context:component-scan base-package="ss.controller" />
<mvc:annotation-driven />
<mvc:resources location="/resources/" mapping="/resources/**" />
<bean id="viewResolver">
<property name="prefix" value="/WEB-INF/jsp/app/" />
<property name="suffix" value=".jsp" />
</bean>
有人可以在配置servlet.xml时如何发布一些示例配置有关如何进行工作吗?非常感谢。
spring mvc 使用@ResponseBody注解返回json字符串
在Controller中:
@RequestMapping(value="/login",method=RequestMethod.POST)
public @ResponseBody User login(String username,String password){
User user = userService.login(username, password);
return user;
}
@ResponseBody会自动将user转化为json字符串
spring-mvc.xml文件:
<!-- 用于将对象转换为 JSON -->
<bean id="stringConverter"
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
<bean id="jsonConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="stringConverter" />
<ref bean="jsonConverter" />
</list>
</property>
</bean>
这里我使用的jackson包:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.5.0</version>
</dependency>
若是利用hibernate等orm工具生成的pojo类,一对一,对多等关系可能会输出无限循环的json:
需要使用在pojo类中导入com.fasterxml.jackson.annotation.JsonIgnore,并为需要屏蔽的类添加@JsonIgnore注解,这样被注解的属性就不会出现在json中了。
Spring mvc 注解@ResponseBody 返回内容编码问题
@ResponseBody
在@Controller 类方法中可以让字符串直接返回内容。
其返回处理的类是org.springframework.http.converter.StringHttpMessageConverter,此类默认编码
<span>public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");</span>
想自定义返回编码,需配置一下:
<span><mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean>
<constructor-arg value="UTF-8" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven></span>
关于SpringMVC @ResponseBody返回json的问题和springmvc中返回json数据的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于easyui ajax请求获取SpringMVC @ResponseBody返回Json数据、Spring MVC 3:通过@ResponseBody返回XML、spring mvc 使用@ResponseBody注解返回json字符串、Spring mvc 注解@ResponseBody 返回内容编码问题等相关内容,可以在本站寻找。
本文标签: