从jsf组件调用javax.el.MethodExpression

时间:2010-03-30 18:49:04

标签: java jsf jstl method-invocation

我有一个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 个答案:

答案 0 :(得分:2)

自从我做了JSF以来已经有一段时间了,但我非常确定方法表达式的格式为:#{bean.method}。你不能只说#{method}

答案 1 :(得分:2)

不要创建JSP标记。创建一个JSF组件。延长UIComponentELTagTutorials here

或者,如果您使用的是Facelets,请考虑template使用ui:compositionTutorials here

或者,如果您已使用JSF 2.0,则可以使用composite components更进一步。 Tutorial here