Weblogic 10.3.4 jsf 1.2编码特殊字符

时间:2011-09-22 12:32:33

标签: jsf

我们有一个Web应用程序,它使用来自deployable-libraries(jsf-1.2.war)的weblogic jsf 1.2实现。我们在打包jsf-impl和weblogic 10.3的兼容性问题之后开始使用weblogic jsf impl。 4

所以问题在于,我们有一些带有几个参数的outputLink,这些参数的值可能包含空间字符,所以我们对它们进行了显式编码(我们有这个用途的taglib函数),但jsf impl在weblogic 10.3上。 4 也对这些字符进行编码,因此我们有双重编码的链接URL。有没有人知道是否有可能在weblogic上禁用此选项并仅手动编码params。

1 个答案:

答案 0 :(得分:3)

只需使用自定义标记库自行编码<f:param>已隐含地执行此操作。

<h:outputLink value="page.jsf">
    <h:outputText value="Click" />
    <f:param name="foo" value="#{bean.foo}" />
    <f:param name="bar" value="#{bean.bar}" />
</h:outputLink>

这就是全部。上面示例中的#{bean.foo}#{bean.bar}只能返回原始和未编码的字符串值。


更新根据评论,这表明这两个服务器JBoss AS 4.2.3和WebLogic 10.3.2正在使用特定的JSF实现/版本,它暴露了{编码的URL编码中的错误{1}}。到目前为止,我只能找到以下相关报告(目前尚不清楚你是否正在使用MyFaces或Mojarra,所以我搜索了两个):

我建议将相关服务器的JSF版本替换/升级到比这些报告中提到的版本更新的版本,或者将JSF库与webapp本身一起发送,并添加<f:param>上下文参数来指示服务器使用webapp捆绑的JSF代替。