@DataModel vs. EL
mykey Feb 2, 2008 7:41 AMI am displaying a list of entities (Student) with a @DataModel on a JSF Page with two links: one for editing and one for delting. For some reason the injection by DataModelSelection does not work correctly. My my status-EL messages for these two functions aren't shown correctly. Deletin entities works (except for the status message) whereas editing does not.
This is my SFSB:
@Stateful
@Scope(ScopeType.SESSION)
@Name("inscription")
public class InscriptionAction implements InscriptionFacade {
@Logger private Log log;
@PersistenceContext(type=PersistenceContextType.EXTENDED) private EntityManager em;
@DataModel private List<Student> studentList;
@In(required=false)
@Out(required=false)
@DataModelSelection
private StudentInsc inscribben; // StudentInsc inherits Student
public String delete() {
//
// This log shows only "Deleting inscribben student"
//
log.info("Deleting inscribben student #{inscribben.givenName} #{inscribben.familyName}");
studentList.remove(inscribben);
StudentInsc stud = em.merge(inscribben);
em.remove(stud);
return "insc";
}
public String startEdit() {
//
// This log shows only "Start editing"
//
log.info("Start editing #{inscribben.givenName} #{inscribben.familyName}");
em.merge(inscribben);
return "editInsc";
}
public String finishEdit() {
//
// This log shows the correct values from the form "Finish editing Newname Newfamilyname"
// but doesn't merge the inscribben student to the database
//
log.info("Finish editing #{inscribben.givenName} #{inscribben.familyName}");
em.merge(inscribben);
return "insc";
}
[....]
This is my table:
<rich:dataTable value="#{studentList}" var="stud" rendered="#{studentList.rowCount>0}" >
[....]
<rich:column><s:link action="#{inscription.startEdit}" value="#{stud.givenName} #{stud.familyName}" /></rich:column>
<rich:column><s:link action="#{inscription.delete}" value="delete" /></rich:column>
[....]
</rich:dataTable>
startEdit redirects to a form, where new values can be entered. On a button click finishEdit is invoked and the DataTable is shown again.
I've already tried a lot, but nothing worked. Can somebody please help me?