我尝试使用<f:param>
标记根据我的条件构建带参数的输出链接网址。
当我将此标记放在h:output链接中并尝试为“禁用”设置不同的值时,我认为没有效果。
这是我的代码
<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>
我希望在网址中只看到一个参数但我看到了两个。
答案 0 :(得分:12)
使用disable="true"
代替disable="#{true}"
对我有用。
因此,它是tag documentation中支持ValueExpression
的错误或UIParameter
类中的错误,它不会将其解析为ValueExpression
。我至少为此报告了issue 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>
和on并且test
条件取决于迭代变量时,这不起作用。
答案 1 :(得分:4)
使用'禁用'代替'禁用'。 原因在这里描述: http://markmail.org/message/bmb2lek5mcx4ofp7