从 jsf 组件调用 javax.el.MethodExpression
我有一个 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 是否可以正确调用“操作” “ 方法?
I have a jsp tag which takes a javax.el.MethodExpression as attribute:
<%@ attribute name="action" required="true" type="javax.el.MethodExpression" rtexprvalue="true" %>
within the same tag I have:
<h:commandLink action="#{action}">
link text
</h:commandLink>
I'm getting the following error when I try to click the link:
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
is it possible for the commandLink to properly invoke the "action" method?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不要创建 JSP 标记。创建一个 JSF 组件。扩展
UIComponentELTag
。 此处有教程。或者,如果您使用 Facelets,请考虑使用模板使用
ui:composition
。 此处有教程。或者,如果您已经使用 JSF 2.0,则可以使用 复合组件。 教程在这里。
Don't create a JSP tag. Create a JSF component. Extend
UIComponentELTag
. Tutorials here.Or, if you're using Facelets, consider a template using
ui:composition
. Tutorials here.Or, if you're already on JSF 2.0, you can get a step further with composite components. Tutorial here.
自从我使用 JSF 以来已经有一段时间了,但我很确定方法表达式的形式为:
#{bean.method}
。您不能只说#{method}
。It's been a while since I did JSF, but I'm pretty sure a method expression is of the form:
#{bean.method}
. You can't just say#{method}
.