2016-10-07 3 views
0

Я создал пользовательский тег Facelets, как это:JSF: Как передать ui: param в пользовательский тег facelets?

<ui:composition xmlns...> 
    <h:form> 
     <h:commandLink action="#{controller.doSomething()}"/> 
    </h:form> 
</ui:composition> 

И я пытаюсь использовать его как это:

<myNs:myTag> 
    <ui:param name="controller" value="#{theActualController}"/> 
</myNs:myTag> 

Но щелчок на commandLink приводит к следующему исключению:

Target Unreachable, identifier 'controller' resolved to null 

Этот вопрос facelets: passing bean name with ui:param to action attribute выглядит несколько похожи, но решение, предложенное там не работает для меня.

ответ

0

Вместо передачи параметра с Ui: пары, можно определить атрибуты в XML-файл TagLib, как это:

<tag> 
    <tag-name>myTag</tag-name> 
    <source>myTag.xhtml</source> 
    <attribute> 
     <name>controller</name> 
     <required>true</requierd> 
    </attribute> 
</tag> 

Затем пройти контроллер, как это:

<myNs:myTag controller="#{theActualController}"/> 
Смежные вопросы