вызвать javax.el.MethodExpression из компонента jsf - PullRequest
2 голосов
/ 30 марта 2010

У меня есть тег jsp, который принимает javax.el.MethodExpression в качестве атрибута:

<%@ attribute name="action" required="true" type="javax.el.MethodExpression" rtexprvalue="true" %>


в том же теге у меня есть:

<h:commandLink action="#{action}">
    link text
</h:commandLink>

При попытке перейти по ссылке появляется следующая ошибка:

javax.faces.FacesException: #{action}: org.apache.jasper.el.JspMethodNotFoundException: /WEB-INF/tags/pager/pager.tag(17,1) '#{action}' Identity 'action' was null and was unable to invoke

Возможно ли для CommandLink правильно вызвать метод "action"?

Ответы [ 2 ]

2 голосов
/ 31 марта 2010

Не создавайте тег JSP. Создайте компонент JSF. Продлить UIComponentELTag. Уроки здесь .

Или, если вы используете Facelets, рассмотрите шаблон , используя ui:composition. Уроки здесь .

Или, если вы уже используете JSF 2.0, вы можете сделать шаг вперед с помощью составных компонентов . Учебник здесь .

2 голосов
/ 30 марта 2010

Прошло много времени с тех пор, как я сделал JSF, но я почти уверен, что выражение метода имеет форму: #{bean.method}.Вы не можете просто сказать #{method}.

...