gpt4 book ai didi

jsf - 如何调用有条件渲染的 UICommand 组件的操作方法?

转载 作者:行者123 更新时间:2023-12-04 06:51:35 26 4
gpt4 key购买 nike

action method is not called 请引用这个问题 - ,我的 UICommand 组件之一是有条件地呈现,在链接问题的答案中说 - 第 5 点 - 如果该组件或其任何父级呈现或禁用的属性为假 - 那么操作方法会不会叫?如果是这样 - 我如何实现相同的功能?有解决办法吗?还是一个伎俩?或任何其他方法?

谢谢!

最佳答案

在这一点上,您希望保留负责 rendered 的属性(property)。后续请求中的条件。这个问题有几种解决方案:

  • 将 bean 放入 session 范围。这很容易,但很痛苦。这对用户体验不利,因为更改将反射(reflect)在用户在同一 session 中打开的所有选项卡/窗口中。
  • 使用 <h:inputHidden>转移属性(property)。理论上很容易,但在实践中也很痛苦。每当在同一表单的任何其他输入中发生验证/转换错误时,该值就会丢失。 JSF 处理隐藏输入元素的方式很奇怪。解决方法是使用 <h:inputHidden binding="#{bean.hidden}">并做一个 hidden.getValue()hidden.setValue()在 bean 。
  • 如果您使用的是 <h:commandLink>而不是 <h:commandButton> ,那么您可以使用 <f:param>转移属性(property)。它将作为请求参数提供,您可以在 bean 的(后)构造函数中检查它。
  • 使用 Tomahawk's <t:saveState> .迄今为止的完美解决方案。这将在后续请求中保留该值(甚至是一个完整的 bean)。

  • 如果您已经在使用 JSF 2.0, @ViewScoped 本来可以解决这一切的。它的行为类似于 <t:saveState> .

    也可以看看:
  • commandButton/commandLink/ajax action/listener method not invoked or input value not updated
  • 关于jsf - 如何调用有条件渲染的 UICommand 组件的操作方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3045129/

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