首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

struts2 输出xml乱码有关问题,求大神帮解决

2013-12-02 
struts2 输出xml乱码问题,急!!!求大神帮解决服务器代码如下private void outPutXml2(String xml) throws I

struts2 输出xml乱码问题,急!!!求大神帮解决
服务器代码如下


  private void outPutXml2(String xml) throws IOException, SAXException, ParserConfigurationException{
  HttpServletResponse response = ServletActionContext.getResponse();      
      PrintWriter out;
      out = response.getWriter();
      response.setCharacterEncoding("UTF-8");  
      response.setContentType("text/xml;charset=UTF-8");   
      response.setHeader("Cache-Control", "no-cache");
      out.write(xml);
  }
  public void getCities() throws Exception {
    List citys = this.userService.getCities(this.user);
    
    
  Document doc = DocumentHelper.createDocument();
  Element rootElmt = DocumentHelper.createElement("result");
  doc.add(rootElmt);
  Element psElmt = DocumentHelper.createElement("cities");
  rootElmt.add(psElmt);
  psElmt.addAttribute("size", String.valueOf(citys.size()));
  for(Object city : citys){
  psElmt.add(new DOMElement("city").addText(String.valueOf(city)));
  }
  
  this.outPutXml2(this.prettyXml(doc).getBuffer().toString());
  }

这里面用
response.setContentType("text/xml;charset=UTF-8"); 

设置了响应的编码,但是到浏览器,却被改变了

Cache-Control:no-cache
Content-Length:111
Content-Type:text/xml;charset=ISO-8859-1
Date:Sat, 30 Nov 2013 02:09:37 GMT
Server:Apache-Coyote/1.1

struts2 配置
 

<action name="getCities" class="com.bang.action.XMLAction" method="getCities">
<result name="xmlMessage" type="plainText">
<param name="charSet">UTF-8</param>
</result>
</action>

再说明一下,其他直接返回jsp页面的编码是utf-8,只有我这个直接输出xml的编码被改成ISO-8859-1,不知道是tomcat问题还是struts问题。tomcat里面的端口编码配置我已经配置成utf-8,一样没有效果。网上查了,都没有类似的问题,希望大神们热心帮我解决下,感激不尽 struts2 xml 输出 乱码
[解决办法]
加一个encoding过滤器试试
[解决办法]
不知道你具体需是什么???具体要干什么啊???
[解决办法]
引用:
Quote: 引用:

不知道你具体需是什么???具体要干什么啊???

具体需求是做一个接口,对方发送请求过来,我用xml给对方输出数据
用ajax发送的请求吧???
[解决办法]
实在不行那就手动拼接xml字符串。

热点排行