Struts2 的XSLTResult输出问题
来源:互联网 发布:怎么清除手机所有数据 编辑:程序博客网 时间:2024/05/20 23:33
一下内容为引用“
今天本打算做一些基于XML的WebService接口,不料遇到了bug,折腾了一个下午带半个晚上,最后才在网上搜到原因和解决办法,特来分享。
原本正常情况下,Struts2是支持将一个Action中的全部属性以XML形式输出的,这就是XSLTResult。在struts.xml中这样配置
<action name="getuser"
class="org.lilystudio.winter.actions.service.GetUserAction">
<result name="success" type="xslt">
</result>
</action>
即可。
而为了输出Action中的某一个属性,需要增加一个param
<action name="getuser"
class="org.lilystudio.winter.actions.service.GetUserAction">
<result name="success" type="xslt">
<param name="exposedValue">user</param>
</result>
</action>
这里就是将user属性序列化成XML。属性的选择支持OGNL,也就是说,这里不仅可以填属性名,还可以填属性的属性,属性的集合等等,如
<param name="exposedValue">user.nickname</param>
<param name="exposedValue">{ user1,user2 }</param>
这里用的都是一个默认的XSL
<xsl:template match="/result">
<result />
</xsl:template>
也可以通过用户指定的方式使用自定义的复杂的XSL
<param name="location">/WEB-INF/foo.xsl</param>
不过,据这篇文章的留言说在Struts2.0.11所使用的SimpleAdaptedDocument不支持DOM Level 3,与JDK中的Transformor冲突。于是会抛出这样的异常
javax.xml.transform.TransformerException: Operation not supported.
怎么办呢?同一篇文章给出了答案,使用一个自定义的XSL
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml"/>
<xsl:template match="/">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
作者说这种方法不太pretty,不过在Struts2修改这个问题之前恐怕这是一个不错的办法了。最后我也是看到这个才免于一晚上的徒劳。
可惜我对XML、XSLT之类的知识还是欠缺不少,白白浪费了时间,很是无奈。
”
后来我稳到个更简单噶办法,就是将JDK改会JDK1.5就OK了,我试过在JDK1.6中会出现问题。在1.5中暂时还没发现类似问题
- Struts2 的XSLTResult输出问题
- struts2 xsltResult Local code execution vulnerability
- Struts2用标签输出后台HTML文本的问题
- Struts2整合JasperReport输出HTML显示问题
- struts2 s:textfield 标签输出日期问题
- struts2 标签向 javascript输出带有双引号的字符串的问题
- Struts2下进行html转义的方法(解决页面输出html标签问题)
- Struts2+Spring输出JSON供AJAX调用注意的小问题
- struts2中,解决property标签原样输出HTML代码的问题
- Struts2下进行html转义的方法(解决页面输出html标签问题)
- 关于struts2验证框架,在与spring整合后重复输出错误信息的问题
- struts2.0.1的问题
- struts2的namespace问题
- struts2的namespace问题
- struts2的一些问题
- struts2配置的问题
- struts2的路径问题
- struts2的namespace问题
- 在C# 之中如何获得MESSAGEBOX的返回值。
- 无缝的缓存读取:双存储缓存策略
- 王者归来》读书笔记 ── JavaScript 面向对象编程(2)
- 最近发生的事
- 王者归来》读书笔记 ── JavaScript 面向对象编程(1)
- Struts2 的XSLTResult输出问题
- 如何预防和检测内存泄漏
- 用ASP.NET在网页上显示缩略图
- Ajax/CSS表格设计汇集
- js.offsetParent属性
- Flex访问HTTPService时数据不自动刷新问题的解决方案
- 价值40美元的25条jQuery技巧
- js正则表达式入门教程
- 国内外UI界面设计和网站设计学习网