2

我有一个 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 是否可以正确调用“操作”方法?

4

2 回答 2

2

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

于 2010-03-30T18:51:54.040 回答
2

不要创建 JSP 标记。创建一个 JSF 组件。扩展UIComponentELTag. 教程在这里

或者,如果您使用 Facelets,请考虑使用ui:composition. 教程在这里

或者,如果您已经使用 JSF 2.0,您可以使用复合组件更进一步。教程在这里

于 2010-03-30T20:34:00.860 回答