SelectOneRadio始终返回0

时间:2020-09-29 11:46:09

标签: jsf primefaces selectoneradio

我正在使用JSF和EJB 3.1开发一个Web应用程序,我想从selectOneRadio中检索一个值:

<p:selectOneRadio id="noteItem" value="#{entretienController.val1}">
                                    <f:selectItem itemLabel="0" itemValue="0"/>
                   itemLabel="1" itemValue="1"/>
                                    <f:selectItem itemLabel="2" itemValue="2"/>
                                    <f:selectItem itemLabel="3" itemValue="3"/>
                                    <f:selectItem itemLabel="4" itemValue="4"/>
                                    <p:ajax process="@this" update="noteItem"/>
                                </p:selectOneRadio>
<p:commandButton process="entretienAnnuelDAPanel" action="#{noteEntretienController.testPersist()}" 
/>

testPersist方法:

 public void testPersist() {
    System.out.println("entrée dans la méthode testPersist");
    try {
        getFacade().saveListeNoteEntretien();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        System.out.println("finally !!!!!");
    }

}

saveListeNoteEntretien方法:

public void saveListeNoteEntretien() {
    List<NoteEntretien> listNoteEntretien = new ArrayList<>();
    try {
        Collaborateur collaborateur = collaborateurFacade.find(1);

        List<Competence> competences = null;
        Competence competence = new Competence();
        competences = competenceFacade.findAll();
        Integer maxIdEntretien = (Integer) em.createQuery("SELECT MAX(e.idEntretien) from Entretien 
   e").getSingleResult();
        Entretien entretien = new Entretien(maxIdEntretien + 1);
        entretien.setDateEntretien(new Date());
        entretien.setDiagnosticEntretien(entretienController.getDiagItem());
        entretien.setObservationsEntretien(entretienController.getObsItem());
        entretien.setIdCollaborateur(collaborateurController.getSelected());
        em.persist(entretien);
        for (int i = 0; i < 24; i++) {
            Integer maxIdNoteEntretien = (Integer) em.createQuery("SELECT MAX(n.idNoteEntretien) from 
   NoteEntretien n").getSingleResult();
            NoteEntretien noteEntretien = new NoteEntretien(maxIdNoteEntretien + 1);
            noteEntretien.setIdCollaborateur(collaborateurController.getSelected());
            noteEntretien.setIdCompetence(competences.get(i));
            noteEntretien.setIdEntretien(entretien);
            try {
                System.out.println(entretienController.getVal1());
                noteEntretien.setValNoteEntretien((float)entretienController.getVal1());
            } catch (Exception e) {
                e.printStackTrace();
            }
            
            em.persist(noteEntretien);
            listNoteEntretien.add(noteEntretien);
        }
    } catch (EJBException e) {
        @SuppressWarnings("ThrowableResultIgnored")
        Exception cause = e.getCausedByException();
        if (cause instanceof ConstraintViolationException) {
            @SuppressWarnings("ThrowableResultIgnored")
            ConstraintViolationException cve = (ConstraintViolationException) 
 e.getCausedByException();
            for (Iterator<ConstraintViolation<?>> it = cve.getConstraintViolations().iterator(); 
 it.hasNext();) {
                ConstraintViolation<? extends Object> v = it.next();
                System.err.println(v);
                System.err.println("==>>" + v.getMessage());
            }
        }
        System.err.println("ejb exception ! ! ! ! !");
    } finally {
        System.out.println("persistence OK !!!!!!!");
    }

}

即使我选择1、2、3或4,检索到的值也始终设置为0。

我尝试了一个简单的inputText并将其解析为浮动在定义的方法上,然后可以获得正确的值:

                                    <h3 style="width: 150px">Note</h3>
                                <p:inputText id="noteItem" value="#{entretienController.val1}">
                                    <p:ajax update="noteItem"/>
                                </p:inputText>

更新:

我还尝试了一个微调器,它运行完美。问题只在于selectOneRadio

<p:outputLabel
                                    value="# 
 {bundle.Personnel_Aptitudes_Communication_Ecrite}"
                                    style="font-weight:bold"/>
                                <p:spinner id="noteItem" value="# 
 {entretienController.val1}">
                                    <p:ajax update="noteItem"></p:ajax>
                                </p:spinner>

有人可以帮助我吗?

谢谢!

0 个答案:

没有答案
相关问题