spring mvc 使用XStream返回xml下划线问题

问题描述

小弟今天用Spring mvc XStream 返回xml数据,发现给返回的pojo对象修改别名(改成有别名中有"_")的问题:返回的POJO对象:返回到前端的XML数据:按道理graphicId应该是以grapic_id作为名称,但是实际返回的是grapic__id两个下划线,这个问题如何解决,大家帮忙。感谢

解决方案

Why do field names suddenly have double underscores in the generated XML?XStream maps Java class names and field names to XML tags or attributes. Unfortunately this mapping cannot be 1:1, since some characters used for identifiers in Java are invalid in XML names. Therefore XStream uses an XmlFriendlyNameCoder to replace these characters with a replacement. By default this NameCoder uses an underscore as escape character and has therefore to escape the underscore itself also. You may provide a different configured instance of the XmlFriendlyNameCoder or a complete different implementation like the NoNameCoder to prevent name coding at all. However it is your responsibility then to ensure, that the resulting names are valid for XML.http://xstream.codehaus.org/faq.html1、1.4及以后<bean id="marshaller" class="org.springframework.oxm.xstream.AnnotationXStreamMarshaller"> <property name="streamDriver"> <bean class="com.thoughtworks.xstream.io.xml.StaxDriver"> <constructor-arg> <bean class="com.thoughtworks.xstream.io.naming.NoNameCoder()"> </bean> </constructor-arg> </bean> </property> </bean>2、1.4之前 <bean id="marshaller" class="org.springframework.oxm.xstream.AnnotationXStreamMarshaller"> <property name="streamDriver"> <bean class="com.thoughtworks.xstream.io.xml.XppDriver"> <constructor-arg> <bean class="com.thoughtworks.xstream.io.xml.XmlFriendlyReplacer"> <constructor-arg index="0" value="_-"/> <constructor-arg index="1" value="_"/> </bean> </constructor-arg> </bean> </property> </bean>3、注册到spring mvc <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter"><property name="marshaller" ref="marshaller" /><property name="unmarshaller" ref="marshaller" /></bean> </mvc:message-converters></mvc:annotation-driven>
解决方案二:
因为XStream用下划线当转义符。你恐怕得自定义个NameCoder参考 官方:http://xstream.codehaus.org/faq.htmlstackoverflow:http://stackoverflow.com/questions/9800494/xstream-double-underline-handling-java

时间: 2024-09-24 00:41:34

spring mvc 使用XStream返回xml下划线问题的相关文章

搭建spring MVC jsp页面和xml文件,在线等

问题描述 搭建spring MVC jsp页面和xml文件,在线等 从jsp页面读取到一个类名,和多个类成员 传入到xml文件中. 说是可以通过spring mvc来搞. 小白,求解答. 比如输入一个类名A ,在输入几个类成员,点击一个按钮,将内容存xml去.

spring MVC 使用注解返回json

使用spring MVC框架时,如何使用注解返回json呢? Java代码   @ResponseBody       @RequestMapping(value = "/login")       public ModelAndView ajaxLogin(Model model,User user,HttpServletRequest request, HttpSession session){           String errorMessage=loginCommon(m

spring mvc xml配置拦截器

spring mvc 有两种配置:(1)注解:(2)基于xml(schema). 公司要求使用xml方式的,其实在我看来注解更方便: 如何使用xml配置spring mvc的拦截器呢? 场景:比如用户通过浏览器访问我的网站时,我需要判断用户是否已经登录过,若登录过,则允许访问,否则自动跳转到登陆页面. spring mvc中拦截器类需要继承HandlerInterceptorAdapter 类 代码如下: Java代码   package com.yj.mvc.controler.interce

springmvc-页面中js跳转URL,与spring mvc中返回视图重定向,先后问题

问题描述 页面中js跳转URL,与spring mvc中返回视图重定向,先后问题 页面中有javascript函数: function mySubmitFn() { /*formname是页面form表单的名字,表单提交后由spring mvc处理,返回一个重定向视图'return new ModelAndView(new RedirectView("A.jsp"));'*/ formname.submit(); //代码1 window.location.href='B.jsp';/

spring mvc 返回图片的请求

功能分析: 要使用Spring MVC来处理返回一个图片的请求.这个跟servlet返回的实现是一样的.​ 代码如下: @RequestMapping(value = "/image/get") public void getImage(HttpServletRequest request,HttpServletResponse response) { FileInputStream fis = null; response.setContentType("image/gif

spring mvc(1):基础入门

spring mvc(1):基础入门 Posted on 2014-08-15 09:39 Lychie Fan 阅读(3815) 评论(1)  编辑  收藏 所属分类: spring mvc  依赖 pom.xml ( maven ) <properties>  <spring.version>3.0.5.RELEASE</spring.version></properties><dependencies>  <dependency>

Spring MVC配置介绍

一.Spring MVC 纵览 Spring MVC就是Spring框架对MVC设计模式的实现,通过Spring MVC ,我们可以快速的构建灵活.松耦合的web服务.再具体介绍Spring MVC 之前,我们先看一下它的请求处理过程: 1.1 springMVC 的请求过程 1. 请求会首先发送到DispatchServlet,这是spring的前置Servlet,它会接收请求并转发给spring的MVC controller,也就是业务controller 2. DispatchServle

IntelliJ idea创建Spring MVC的Maven项目

原文:IntelliJ idea创建Spring MVC的Maven项目 参考:http://my.oschina.net/gaussik/blog/385697?fromerr=Pie9IlFV 创建Maven Web项目 菜单File->New Project可进入如图界面,首先选择左边栏Maven,再配置JDK(一般如果之前添加了JDK的话会自动填充,如未添加的话点击旁边的New将JDK目录导入即可).勾选"Create from archetype",然后选中maven-

使用Spring 2.5基于注解驱动的Spring MVC

概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 XML 配置文件中定义请求和 Controller 的映射关系,仅仅使用注解就可以让一个 POJO 具有 Controller 的绝大部分功能 -- Spring MVC 框架的易用性得到了进一步的增强.在框架灵活性.易用性和扩展性上,Spring MVC 已经全面超越了其它的 MVC 框架,伴随