如何使用 EL 2.2 方法表达式将动态参数传递给支持 bean?

发布于 2024-12-25 01:21:19 字数 684 浏览 0 评论 0原文

我试图从我的支持 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

给我一枪 2025-01-01 01:21:19

嵌套 EL 表达式 #{} 是非法的。只需删除嵌套表达式即可。

<h:commandLink action="#{search.showUrls(urlresult)}" value=" x" />

另外,当您在 中使用它时,为了使其正常工作,请确保 #{search} bean在视图范围内,或者如果确实需要在请求范围内,请确保在 bean 初始化期间保留 #{search.searchResults_sites_urls}

另请参阅:

It's illegal to nest EL expressions #{}. Just remove the nested expression.

<h:commandLink action="#{search.showUrls(urlresult)}" value=" x" />

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:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文