f: атрибут тега param 'отключить' не работает - PullRequest
6 голосов
/ 10 июня 2011

Я пытаюсь использовать тег <f:param> для создания URL выходной ссылки с параметрами, зависящими от некоторых моих условий.

Когда я помещаю этот тег в h: выходную ссылку и пытаюсь установить разные значения для '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, но я вижу оба.

Ответы [ 2 ]

12 голосов
/ 10 июня 2011

Использование 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 зависит от итерированной переменной.

4 голосов
/ 12 июля 2012

Используйте «disble» вместо «disable».Причина описана здесь: http://markmail.org/message/bmb2lek5mcx4ofp7

...