Как обновить компонент с ajax при выборе ap: selectOneRadio? - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь использовать ajax для обновления компонента на моей странице jsf при выборе переключателя. Управляемый bean-компонент выглядит следующим образом:

@SessionScoped
@ManagedBean
public class TestMB {
   ArrayList<String> domande;
   String[] risposte = new String[3];

   public TestMB() {
       domande = new ArrayList<String>();
       domande.add("Domanda1");
       domande.add("Domanda2");
       domande.add("Domanda3");
   }

   public ArrayList<String> getDomande() {
       return domande;
   }

   public void setDomande(ArrayList<String> domande) {
       this.domande = domande;
   }

   public String[] getRisposte() {
       return risposte;
   }

   public void setRisposte(String[] risposte) {
       this.risposte = risposte;
   }

   public void asserta() {
       System.out.println(risposte[0]);
   }
}

Страница JSF является следующей:

<h:form id="label">
  <p:panelGrid columns="1" layout="grid" styleClass="showcase-text-align-center">
    <p:repeat var="domanda" value="#{testMB.domande}" varStatus="status">
      <h1>#{domanda}</h1>
      <p:selectOneRadio value="#{testMB.risposte[status.index]}">
        <f:selectItem itemLabel="1" itemValue="1"></f:selectItem>
        <f:selectItem itemLabel="2" itemValue="2"></f:selectItem>
        <f:selectItem itemLabel="3" itemValue="3"></f:selectItem>
      </p:selectOneRadio>
    </p:repeat>

  </p:panelGrid>
  <p:outputLabel value="#{testMB.risposte[0]}"></p:outputLabel>

  <p:commandButton update="label" value="Si" />
</h:form>>

Я хотел бы обновить форму при изменении параметра в теге. Если я нажимаю кнопку Command, все в порядке, но как реализовать то же поведение при выборе переключателя?

Заранее спасибо!

1 Ответ

0 голосов
/ 18 апреля 2020

У вас есть компонент <p:ajax>. Попробуйте что-то вроде этого:

<p:selectOneRadio value="#{testMB.risposte[status.index]}">
    <f:selectItem itemLabel="1" itemValue="1"></f:selectItem>
    <f:selectItem itemLabel="2" itemValue="2"></f:selectItem>
    <f:selectItem itemLabel="3" itemValue="3"></f:selectItem>
    <p:ajax update="label" />
</p:selectOneRadio>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...