@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?