无法将布尔变量的true / false值设置为无效-primefaces JSF

问题描述 投票:0回答:1

我无法将布尔值设置为false值我有以下代码

Form.xhtml

<ui:composition xmlns="http://www.w3.org/1999/xhtml">
    <h:form>
        <p:panel id="work" styleClass="panelNoBorder">
            <p:fieldset toggleable="true" toggleSpeed="500" legend="Core">
                <h:panelGrid columns="2" styleClass="panelNoBorder"
                             rendered="#{javaMB.formNotComplete and !javaMB.formRejected}">

                    <p:outputLabel value="Form Number"/>
                    <p:row>
                        <p:inputText id="formNumber" value="#{javaMB.formNumber}" maxlength="10">
                        </p:inputText>
                    </p:row>
                    <p:outputLabel value="Result"/>
                    <p:row>
                        <p:inputText id="result" maxlength="10"
                                     value="#{javaMB.result}">
                        </p:inputText>
                    </p:row>
                </h:panelGrid>
                <h:panelGrid columns="4">
                    <p:commandButton id="approve" value="Approve" type="submit"
                                     actionListener="#{javaMB.approveForm}"
                                     rendered="#{javaMB.formNotComplete and !javaMB.formRejected}">
                    </p:commandButton>
                    <p:commandButton id="reject" value="Reject" type="button"
                                     actionListener="#{javaMB.rejectForm}"
                                     rendered="#{javaMB.formNotComplete and !javaMB.formRejected}">
                    </p:commandButton>
                    <p:outputLabel value="Approved" rendered="#{!javaMB.formNotComplete}"/>
                    <p:outputLabel value="Rejected" rendered="#{javaMB.formRejected}"/>
                </h:panelGrid>
            </p:fieldset>
        </p:panel>
    </h:form>
</ui:composition>
public class JavaMB {

    private boolean formRejected = false;
    private boolean formNotComplete = true;

    public boolean isFormRejected() {
        return formRejected;
    }

    public void setFormRejected(boolean formRejected) {
        this.formRejected = formRejected;
    }

    public boolean isFormNotComplete() {
        return formNotComplete;
    }

    public void setFormNotComplete(boolean formNotComplete) {
        this.formNotComplete = formNotComplete;
    }

    public void initializeWorkFlow() {
        logger.debug("Form: " + FormEntity.getFormId());
        if (workflow.getActionType().getActionTypeId() == '5') {
            this.setFormNotComplete(false);
        } else if (workflow.getActionType().getActionTypeId() == '7') {
            this.setFormRejected(true);
        } else {

        }

    }
}

设置值放在if语句内,if语句工作得很好为了测试是否存在问题,我将true转换为false并将false转换为true相反的逻辑原理

问题是我无法正确显示布尔值。控制台中没有错误,

this.setFormNotComplete(false);
this.setFormRejected(true); 

任何想法如何解决此问题?

jsf
1个回答
0
投票

对于布尔字段,getter方法名称应为is<First letter capitalised field name>,但您的不是。

[public boolean isformRejected()应为public boolean isFormRejected()public boolean isformNotComplete()应为public boolean isFormNotComplete()

© www.soinside.com 2019 - 2024. All rights reserved.