繁体   English   中英

将disabled / readonly选项更新为false后,inputtext返回null

[英]inputtext returns null after update the disabled/readonly option true to false

我有一个switch(布尔值)。当switch为true时,inputtext disable选项为true。当switch为false时,inputtext disable选项为false,因此我可以输入数据。但是此数据返回null。

    <h:form id="form">
                <p:inputSwitch value="#{switchMB.isTrue}" onLabel="True"
                    offLabel="False">
                    <p:ajax update="inputText" />
                </p:inputSwitch>

                <p:inputText id="inputText" value="#{switchMB.inputTextValue}"
                    disabled="#{switchMB.isTrue}"  />

                <p:commandButton action="#{switchMB.addValue}" 
                    update=":form" value="Add"></p:commandButton>
    </h:form>

当我在inputText中输入数据时,此数据始终返回null。如何解决此问题? 谢谢。如何更新inputText中的disabled选项并正确输入数据?

作为防范篡改/被黑客窃取的保护措施的一部分, 还将在表单提交的“应用请求值”阶段评估disabled属性。 因此,基本上,您需要确保#{switchMB.isTrue}计算结果与呈现表单时的计算结果完全相同。 简便的方法是将#{switchMB}托管bean放在视图范围内,而不是在请求范围内。

@Named // Or @ManagedBean
@ViewScoped // Watch out that you import from the right package!
public class SwitchMB {}

即,当您将其放在请求范围内时,所有属性都将重置为其默认值,这在您的特定情况下显然会触发disabled="true"

也可以看看:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM