[jboss-user] [JBoss Seam] - validation & selectManyListbox

dschaedl do-not-reply at jboss.com
Thu Aug 9 17:05:55 EDT 2007


JBoss 4.0.5
JBoss Seam 1.2.1.GA 

My h:selectManyListbox displays my list correctly. But when I select entries and hit update to update my model containing this list I get a validation Error: "value is not valid" (on the webpage). How are the entries validated? why isn't it valid?
If I switch off the validation and press the update-button nothing happens (Jboss is doing 'someting', but no logging, no page-forwarding; the update-action seems not to be called)
The update works just fine if I deselect all entries in the listbox.

The XHTML:

  | ...
  | <s:decorate id="coursesDecoration" template="layout/edit.xhtml">
  |   <ui:define name="label">alle PRC-Kurse</ui:define>
  |   <h:selectManyListbox value="#{trainer.courses}" >
  |     <s:selectItems value="#{courseLister.allCourses}" var="course" label="#{course.name}" />
  |     <s:convertEntity/>
  |   </h:selectManyListbox>
  | </s:decorate>
  | ...
  | <h:commandButton id="updatetrainer" value="update" action="#{edittrainer.updateTrainer}" rendered="#{!edittrainer.newTrainer}" />
  | 

Trainer

  | @Entity
  | @Name("trainer")
  | public class Trainer extends Rower {
  | 
  | private List<Course> courses;
  | 
  | @ManyToMany
  | public List<Course> getCourses() {
  |     return courses;
  | }
  | public void setCourses(List<Course> courses) {
  |     this.courses = courses;
  | }
  | ...
  | 

Course

  | @Entity
  | @Name("course")
  | public class Course implements Serializable{
  | 
  | @ManyToMany(mappedBy="courses")
  | private List<Trainer> trainers;
  | ...
  | 

CourseListerBean

  | ...
  | public List<Course> getAllCourses() {
  |     return em.createQuery("from Course c order by c.name desc").getResultList();
  | }
  | ...
  | 

editTrainerBean

  | @Stateful
  | @Name("edittrainer")
  | public class EditTrainerBean implements EditTrainer {
  | 
  | @In(required=false)
  | @Out
  | private Trainer trainer;
  | 
  | public void updateTrainer() {
  |   log.info("updating trainer: #{trainer.name} id:#{trainer.id}");  <-- never shown!
  |   em.persist(trainer);
  | }
  | ...
  | 

any ideas?

Daniel

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4072721#4072721

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4072721



More information about the jboss-user mailing list