gpt4 book ai didi

jsf - 如何在 JSF 中创建切换按钮?

转载 作者:行者123 更新时间:2023-12-05 01:10:55 26 4
gpt4 key购买 nike

如何在 JSF 中创建切换按钮?

基本上,我需要两个按钮“输入”和“输出”。它们本质上调用相同的托管 bean,但由于每次点击,一个应该被禁用,另一个应该被启用,反之亦然。如何才能做到这一点?我应该使用ajax功能吗?

最佳答案

只需一个 boolean您在操作方法中反转的属性并在 disabled 中准确使用该属性两个按钮的属性,反转。

开场示例:

@ManagedBean
@ViewScoped
public class Bean {

private boolean enabled;

public void toggle() {
enabled = !enabled;
}

public boolean isEnabled() {
return enabled;
}

}


<h:form>
<h:commandButton value="Enable" action="#{bean.toggle}" disabled="#{bean.enabled}" />
<h:commandButton value="Disable" action="#{bean.toggle}" disabled="#{not bean.enabled}" />
</h:form>

从技术上讲,Ajax 不是必需的。欢迎添加 <f:ajax>两个按钮,以改善用户体验。

一个 @ViewScoped bean又是非常必要的。一个 @RequestScoped一个将在请求结束时被丢弃并在下一个请求中重新创建,从而导致 boolean重新初始化为默认值,因此在第二次单击后似乎无法工作,因为 JSF 将作为防止篡改/黑客请求的保护措施的一部分还会检查 disabled (和 rendered )属性,然后再实际调用操作。

也可以看看:
  • How to choose the right bean scope?
  • commandButton/commandLink/ajax action/listener method not invoked or input value not updated (第 5 点)
  • 关于jsf - 如何在 JSF 中创建切换按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14692326/

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