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

标签 jsf-2 facelets el

<分区>

我试图从我的支持 bean 中的 JSF 2.0 页面调用一个函数,传递一个动态参数。只要我传递静态字符串,它就可以正常工作,但是当我尝试使用动态字符串时,我总是会遇到 EL 解析错误。我猜这是一个语法问题,但我想不出另一种使用方法表达式来做到这一点的方法。我知道我可以用 <f:param..../> 做到这一点标签,但我不会放弃这个 :)

<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
}

这是怎么引起的,我该如何解决?

最佳答案

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

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

此外,当您在 <h:dataTable> 中使用它时, 为了让它正常工作,请确保 #{search} bean 在 View 范围内,或者如果它确实需要在请求范围内,请确保您保留了 #{search.searchResults_sites_urls}在 bean 的初始化期间。

另见:

关于jsf-2 - 如何使用 EL 2.2 方法表达式将动态参数传递给支持 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8714410/

相关文章:

javascript - 如何为 JSF Managed Bean 传递 JavaScript 对象

JavaScript 在 Primefaces AJAX 事件调用完成之前检索数据

jsf - 如何使用 JSF 2.0 Facelets 在 XHTML 中包含另一个 XHTML?

jsf - 将 XML 命名空间声明提取到单独的标记文件/标记库中

java - jsf 2.0 表达式语言括号不起作用

css - .ui-layout-north 背景色

jsf-2 - Primefaces的p :dataTable?中rowKey属性有什么用

tomcat - JAS 2.2 和 Facelet 支持 jar

jsf - 自定义facelet <p :colum> does not filter properly

java - EL session 对象属性