selectOneMenu перейти в предыдущий выбор - PullRequest
0 голосов
/ 06 июня 2018
<h:selectOneMenu value="#{bean.type}">
    <f:selectItems value="#{bean.Items}"        
        var="val" itemLabel="#{val.description}"
        itemValue="#{val.id}" />
    <p:ajax  process="@this" listener="#{bean.resetStart}" />
</h:selectOneMenu>

В bean-компоненте

public void resetStart() {
    if (type.equals("A")) {
        start = 0;
    }
}

При выборе элемента с типом «А» мне нужно сбросить начало до 0. Но реальность такова, что она всегда делает цель на шаг позади,Например, когда я выбираю опцию с типом «А», она ничего не делает.Затем я выбираю что-нибудь еще, он выполняет изменения (теперь тип равен A).

Пожалуйста, дайте мне знать, где проблема.Спасибо!

1 Ответ

0 голосов
/ 06 июня 2018

Вам не нужен отдельный слушатель, просто попробуйте:

<h:selectOneMenu value="#{bean.type}">
  <p:ajax partialSumbit="true" process="@this"/>

и в вашем бине:

setType(String t) {
  type=t;
  if (type.equals("A"))
    start = 0;
}
...