f:参数标签属性'disable'不起作用



我尝试使用<f:param>标记来构建输出链接URL,参数取决于我的一些条件。

当我把这个标签放在h:output链接中,并试图为"disable"设置不同的值时,我看不到任何效果。

这是我的代码

<h:outputLink value="/WebApplication10/faces/index.xhtml">
    Link1
    <f:param disable="#{true}" name="name1" value="value1"/>            
    <f:param disable="#{false}" name="name2" value="value2"/> 
</h:outputLink> 

我希望在url中只看到一个参数,但我看到了两个参数。

使用disable="true"而不是disable="#{true}"对我有效。

因此,要么是标签文档中支持ValueExpression的错误,要么是UIParameter类中没有将其解析为ValueExpression的错误。我至少为此报告了第2102期。


更新:作为一种临时破解/解决方法,您可以使用<c:if>来控制在视图构建时包含<f:param>标记。

<h:outputLink value="/WebApplication10/faces/index.xhtml">
    Link1
    <c:if test="#{!true}"><f:param name="name1" value="value1"/></c:if>
    <c:if test="#{!false}"><f:param name="name2" value="value2"/></c:if>
</h:outputLink> 

请注意,当这篇文章嵌入到JSF迭代组件(如<ui:repeat><h:dataTable>等)中,并且test条件取决于迭代变量时,这将不起作用。

使用"disble"而不是"disable"。原因如下:http://markmail.org/message/bmb2lek5mcx4ofp7

最新更新