读书人

struts2 输出xml乱码有关问题求大神

发布时间: 2013-12-02 12:00:40 作者: rapoo

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

读书人网 >J2EE开发

热点推荐