Xpages 如何使复选框可编辑

Xpages 如何使复选框可编辑,xpages,javabeans,Xpages,Javabeans,Domino8.5.3FP5,Designer9.0.1 我有一个只包含以下复选框的空xpage。我无法使其可编辑。它显示正确的值,但显示为禁用 <xp:checkBox text="Label" id="checkBox1" uncheckedValue="true" checkedValue="false" value="#{javascript:jBeanConfigSupport.validationEnabledTxt}">

Domino8.5.3FP5,Designer9.0.1

我有一个只包含以下复选框的空xpage。我无法使其可编辑。它显示正确的值,但显示为禁用

        <xp:checkBox text="Label" id="checkBox1" uncheckedValue="true" 
        checkedValue="false" 
        value="#{javascript:jBeanConfigSupport.validationEnabledTxt}">
        </xp:checkBox>
我哪里错了?

弗朗西斯科

您需要有一个有效的setter方法,才能编辑该方法。在您的例子中,setValidationEnabledTxt()方法可能存在问题,导致UI中的字段为只读


尝试将“this”添加到代码中,使其读取this.isValidationEnables=Boolean.parseBoolean(onOff)

您正在使用SSJS进行绑定,因此使用
jBeanConfigSupport.validationEnabledTxt
的结果来确定它应该绑定到什么,而不是绑定到bean的
validationEnabledTxt
属性
value=“#{jBeanConfigSupport.validationEnabledTxt}”
应该可以映射到getter和setter。

请按照Paul的建议尝试使用表达式语言绑定到bean,然后更新是否修复了它。如果这不起作用,那么尝试将字段的类型从布尔更改为字符串,然后从那里回溯。(应该很好)谢谢保罗。它作为表达语言工作。非常感谢您,感谢@steve的澄清。没有办法使用SSJS?如果您想绑定到bean的属性,您需要使用表达式语言。SSJS只是一个字符串,在运行时或页面加载时计算以返回值。您不想绑定到SSJS的结果,因此SSJS是错误的方法。如果它是dominoDocument而不是bean,那么SSJS将绑定到字段的值,而不是字段本身。这与尝试在CSJS中运行SSJS类似——SSJS由服务器计算,结果由CSJS使用,SSJS本身不在CSJS中使用。
private boolean isValidationEnabled=true;

    public String getValidationEnabledTxt() {
        return String.valueOf(isValidationEnabled);
    }

    public void setValidationEnabledTxt(String onOff) {
        isValidationEnabled=Boolean.parseBoolean(onOff);
    }
    public void setValidationEnabledTxt(boolean onOff) {
        isValidationEnabled=onOff;
    }