Jsf SelectOneRadio始终返回0
我正在使用JSF和EJB3.1开发一个web应用程序,我想从selectOneRadio中检索一个值: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
<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>