как сделать мой валидатор условным для моего флажка - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть определенный валидатор для моего элемента управления флажком:

<xp:checkBox uncheckedValue="false"
    checkedValue="true" readonly="#{!matterBean.matter.editable}"
    id="cbKCSupport" style="width:100%"
    value="#{matterBean.matter.creatorKCSupport}"
    validator="#{matterValidators.valCreatorKCSupport}">
</xp:checkBox>

метод ничего необычного, я просто проверяю значение true или false флажка:

public void valCreatorKCSupport(FacesContext facesContext, UIComponent component, Object value) {          
        utils.printToConsole(this.getClass().getSimpleName().toString() + " - valCreatorKCSupport(...), value = " + value.toString());
        String msg = null;
        if (value.toString().equals("false")){
            msg = matterProp.getProperty("gen_KCSupport");          
            FacesMessage message = new FacesMessage(msg);
            throw new ValidatorException(message);
        }       
    }

Iобратите внимание, что эта проверка блокирует поведение других компонентов, например, открытие диалоговых окон.

Для других элементов управления у меня есть аналогичный подход, где обязательное свойство основано на том, какой компонент (кнопки) инициировал вызов на сервер:

<xp:this.required><![CDATA[#{javascript:return ( submittedBy('btnSendToCommitee') || submittedBy('btnForCompletion') )}]]></xp:this.required>

Я попытался установить аналогичный подход для своего флажка:

, но затем мне выдается сообщение об ошибке:

Ошибкаво время выполнения выражения действия JavaScript Ошибка интерпретатора сценария, line = 2, col = 33: Ошибка вызова метода 'valCreatorKCSupport (com.ibm.xsp.domino.context.DominoFacesContext, com.ibm.xsp.component.xp.XspInputCheckbox, string)'в сообщении java-класса 'se.sebank.kkom.test.MatterValidators' (текст с текстом по адресу materialProp.getProperty ("gen_KCSupport"))

Любое предложение, как мне следуетd применить какое-либо условное утверждение к моему валидатору?

...