ADFfaces незамедлительно игнорирует, если требуемый ввод имеет частичный триггер отправляющий компонент - PullRequest
0 голосов
/ 17 июня 2011

У меня есть selectOneChoice с autoSubmit=true и immediate=true для пропуска проверки, если для selectOneChoice задано какое-то значение, я хочу удалить обязательный атрибут из inputText , поэтомуinputText будет иметь partialTrigger идентификатор selectOneChoice, но когда я изменяю значение с selectOneChoice (и изменение отправляется), необходимая проверка по-прежнему запускается только для компонента, который необходимо обновить (из-за наличия PartialTriggers) другие обязательные компоненты не запускают его проверку.
Есть ли обходные пути?

Ответы [ 3 ]

2 голосов
/ 26 августа 2011

Вам необходимо изменить нужный индикатор в valueChangeListener. Это произойдет до обновления модели.

Например, данный фрагмент JSF.

<af:panelFormLayout id="pfl1">
  <af:inputText label="Label 1" id="it1" value="#{pageFlowScope.RemoveRequiredBean.myValue}" required="true" partialTriggers="soc1"/>
  <af:selectOneChoice label="Selection" value="#{pageFlowScope.RemoveRequiredBean.selection}" id="soc1" autoSubmit="true" immediate="true"
                      valueChangeListener="#{pageFlowScope.RemoveRequiredBean.selectionChange}">
    <af:selectItem label="one" value="one" id="si3"/>
    <af:selectItem label="two" value="two" id="si1"/>
    <af:selectItem label="three" value="three" id="si2"/>
  </af:selectOneChoice>
  <af:commandButton text="commandButton 1" id="cb1"/>
  <f:facet name="footer"/>
</af:panelFormLayout>

И этот слушатель, вы получаете поведение, которое вы описываете.

public void selectionChange(ValueChangeEvent valueChangeEvent) {
    String newValue = valueChangeEvent.getNewValue().toString();
    RichInputText it = (RichInputText)valueChangeEvent.getComponent().findComponent("it1");
    it.setRequired(!"two".equals(newValue));
}
0 голосов
/ 20 сентября 2016

Если вы хотите пропустить проверку, установите для параметра Пропустить проверку значение True на pagedef.

0 голосов
/ 03 августа 2011

Можете ли вы опубликовать выражение EL для обязательного атрибута вашего inputText?

<af:inputText label="ResId" id="it1" required="#{someValueExpression}"
                    partialTriggers="soc1">            
      </af:inputText>
      <af:selectOneChoice label="Label 1" id="soc1" autoSubmit="true">
        <af:selectItem label="test" value="test" id="si1"/>
        <af:selectItem label="test2" value="test2" id="si12"/>
      </af:selectOneChoice>
...