Jsf SelectOneRadio始终返回0

Jsf SelectOneRadio始终返回0,jsf,primefaces,selectoneradio,Jsf,Primefaces,Selectoneradio,我正在使用JSF和EJB3.1开发一个web应用程序,我想从selectOneRadio中检索一个值: <p:selectOneRadio id="noteItem" value="#{entretienController.val1}"> <f:selectItem itemLabel="0" itemValue="0"/&g

我正在使用JSF和EJB3.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()}" 
/>
SaveListNoteEntertien方法:

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 !!!!!!!");
    }

}
public void saveListNoteEntertien(){
List ListNoteEntertien=new ArrayList();
试一试{
collabour collaboratiur=collaboratiurfacade.find(1);
列表能力=空;
能力=新能力();
能力=能力facade.findAll();
整数MaxIdentitRetien=(整数)em.createQuery(“从Entertien中选择MAX(e.IdentitRetien))
e”).getSingleResult();
Entertien Entertien=新的Entertien(MaxIdentinten+1);
setDateEntertien(新日期());
Entertien.SetDiagnosticeEntertien(EntertiennController.GetDiagitItem());
entertien.setObservationsEntertien(entertiennController.getObsItem());
setIDCollabour(collaborateurController.getSelected());
em.persist(entretien);
对于(int i=0;i<24;i++){
整数maxidNoteEntertien=(整数)em.createQuery(“从中选择MAX(n.idNoteEntertien))
notentrien”).getSingleResult();
NoteEntertien NoteEntertien=新的NoteEntertien(MaxIDNoteEntertien+1);
NoteEntertien.setIDCollabour(collaborateurController.getSelected());
注:设置能力(能力。获取(i));
注释entertien.setIdEntretien(entertien);
试一试{
System.out.println(entriencecontroller.getVal1());
setvalnotentrieen((float)entriencontroller.getVal1());
}捕获(例外e){
e、 printStackTrace();
}
em.persist(notentretien);
listNoteEntertien.add(NoteEntertien);
}
}捕获(EJBException e){
@SuppressWarnings(“ThrowableSultignored”)
异常原因=e.getCausedByException();
if(导致ConstraintViolationException的实例){
@SuppressWarnings(“ThrowableSultignored”)
ConstraintViolationException cve=(ConstraintViolationException)
e、 getCausedByException();

对于(迭代器类书籍,如您的XHTML中有一个bug,其中您的
f:selectitem
for 1处于禁用状态?我不太明白您想在上面的
itemLabel=“1”itemValue=“1”/>
中查看代码的确切内容。这是错误的。可能还需要检查
update=“noteItem”
确实需要我删除了更新参数,是的,它不是必需的。我最后使用了一个SelectOne按钮,并用一个整数列表填充它,它就工作了。我想如果我用selectradio做同样的事情,它会工作得很好。
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 !!!!!!!");
    }

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