GVKun编程网logo

SpringMVC @ResponseBody返回json的问题(springmvc中返回json数据)

20

本篇文章给大家谈谈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数据)

SpringMVC @ResponseBody返回json的问题(springmvc中返回json数据)

如图我返回一个Map  并有注解 @ResponseBody,按理说访问这个方法,应该会返回一个json给我

但是我访问过后,却返回一个找不到jsp404的页面给我,如下图

请问是怎么回事 谢谢

easyui ajax请求获取SpringMVC @ResponseBody返回Json数据

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 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字符串

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 返回内容编码问题

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 返回内容编码问题等相关内容,可以在本站寻找。

本文标签: