我有一个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”方法?
答案 0 :(得分:2)
自从我做了JSF以来已经有一段时间了,但我非常确定方法表达式的格式为:#{bean.method}
。你不能只说#{method}
。
答案 1 :(得分:2)
不要创建JSP标记。创建一个JSF组件。延长UIComponentELTag
。 Tutorials here
或者,如果您使用的是Facelets,请考虑template使用ui:composition
。 Tutorials here。
或者,如果您已使用JSF 2.0,则可以使用composite components更进一步。 Tutorial here