如何解决SelectOneRadio始终返回0
我正在使用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>
有人可以帮助我吗?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。