1

我的一个朋友让我看看他正在开发的一个 portlet。他遇到的问题是,当他输入一个像

1 < 2 > 3

在他得到的输入字段中

1 < 2 > 3

在映射的字符串字段中。

虽然他的代码中有相当一部分是可疑的,但我找不到他使用.replace函数/设置defaultHtmlEscape为 true 的任何实例。

我确实调试了他的portlet,它甚至在它进入控制器之前就已经改变了。我在 Springs dispatcherportlet 中放置了一个断点,并且在 processAction 中它已经被转换了。

>&lt; 只有在它之前才被解析,<所以它很可能是一个转义问题,因为它被作为一个 html 标签处理,但我找不到任何影响它的代码。

我对 Spring 2.5.6(我使用版本 3)不太熟悉,但我不记得有任何类似的问题。这可能是 websphere 门户 6.1 的问题,但这会让我感到惊讶,因为我找不到任何类似的问题。(我明天将尝试制作类似的场景)。

任何输入将不胜感激。

(spring 2.5.6-SEC02,没有最新功能包的 WebSphere Portal 6.1)

4

1 回答 1

1

转义 XML 是指将特殊字符等转换&, >, <为字符实体代码等&amp;, &gt;, &lt;,。如果 portlet 依赖于 portlet 标记库生成的不是 XML 转义的 URL,则将此容器运行时选项设置为 false。在 Portlet 2.0 规范中,所有由 portlet 标签库生成的 URL 默认都是 XML 转义的。

你的朋友应该在他的 portlet JSP 中有一些转义功能,如下面的

 <portlet:resourceURL var="inputURL" id="userValues" escapeXml="false" />
于 2011-03-02T05:56:34.087 回答