如何使用 EL 2.2 方法表达式将动态参数传递给支持 bean?
我试图从我的支持 bean 中的 JSF 2.0 页面调用一个函数,传递一个动态参数。只要传递静态字符串,它就可以正常工作,但是当我尝试使用动态字符串时,我总是会收到 EL 解析错误。我猜这是一个语法问题,但我想不出另一种方法来使用方法表达式来做到这一点。我知道我可以使用
标记来完成此操作,但我不会放弃这个:)
<h:dataTable var="urlresult" value="#{search.searchResults_sites_urls}">
<h:column>
<h:form>
<h:outputText value="#{urlresult}" />
<h:commandLink action="#{search.showUrls(#{urlresult})}" value=" x" />
</h:form>
</h:column>
</h:dataTable>
支持 bean 中的方法:
public void showUrls(String url) {
//CODE
}
这是怎么造成的,如何解决?
I'm trying to call a function from a JSF 2.0 page in my backing bean passing a dynamic parameter. It works fine as long as im passing a static string, but when I try using a dynamic one, I always get an EL parsing error. I guess its a syntax problem, but I can't think of another way to do this using method expression. I know that I could do it with the <f:param..../>
tag, but I'm not going to give up on this one :)
<h:dataTable var="urlresult" value="#{search.searchResults_sites_urls}">
<h:column>
<h:form>
<h:outputText value="#{urlresult}" />
<h:commandLink action="#{search.showUrls(#{urlresult})}" value=" x" />
</h:form>
</h:column>
</h:dataTable>
The method in the backing bean:
public void showUrls(String url) {
//CODE
}
How is this caused and how can I solve it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
嵌套 EL 表达式
#{}
是非法的。只需删除嵌套表达式即可。另外,当您在
中使用它时,为了使其正常工作,请确保#{search}
bean在视图范围内,或者如果确实需要在请求范围内,请确保在 bean 初始化期间保留#{search.searchResults_sites_urls}
。另请参阅:
It's illegal to nest EL expressions
#{}
. Just remove the nested expression.Also, as you're using this in a
<h:dataTable>
, in order to get it to work properly, make sure that the#{search}
bean is in the view scope, or if it really needs to be request scoped, make sure that you're preserving the#{search.searchResults_sites_urls}
during bean's initialization.See also: