gpt4 book ai didi

jsf-2 - 如何将方法参数传递给 ActionListener?

转载 作者:行者123 更新时间:2023-12-04 22:34:58 26 4
gpt4 key购买 nike

我正在创建一个动态生成的菜单。在数据库中,我存储了每个子菜单的目录( String )并存储在 ArrayList 中。在 bean 里。这是代码的一部分:

<c:forEach items="#{controlWeb.algorithms}" var="alg">
<h:form>
<h:commandLink actionListener="#{controlWeb.setContent(PROBLEM)}" value="About"/>
</h:form>
</c:forEach>

问题出在“问题”中。我想写 #{alg.algorithm1}它不起作用,因为我认为嵌套 EL 表达式是不可能的。
actionListener设置 String #{alg.algorithm1}在另一个 String .我怎样才能达到要求?

最佳答案

使用action ,而不是 actionListener . actionListener必须绑定(bind)到采用 ActionEvent 的方法作为唯一的论据,没有任何借口。此外,actionListener不打算调用 Action ,而是监听 Action (以便您可以记录它或执行一些预处理任务或其他)。

<c:forEach items="#{controlWeb.algorithms}" var="alg">
<h:form>
<h:commandLink action="#{controlWeb.setContent(alg.algorithm)}" value="About"/>
</h:form>
</c:forEach>
请注意,自 EL 2.2 起才支持在 EL 中传递参数,EL 2.2 随 Servlet 3.0/Java EE 6 一起提供。您需要确保目标是与 Servlet 3.0 兼容的 Servlet 3.0 兼容容器 web.xml .
也可以看看:
  • Differences between action and actionListener
  • How to call a method with a parameter in JSF
  • 关于jsf-2 - 如何将方法参数传递给 ActionListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9083491/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com