java ee - Primefaces dataTable only adding a single row -
i've been digging through archives find answer might help, nothing seems apply.
i have page in jsf nested datatables holding list backing bean. page seems holding data without issues, when attempt add rows either of datatables using p:collector primefaces object, datatable ever displays single row. adding empty object both lists.
the objects contained in list custom objects implement serializable.
my backing bean conversationscoped, , data in backing bean instantiated when conversation started.
here main page:
<ui:composition template="/templates/pagelayout.xhtml"> <ui:define name="pagecontent"> <h:form id="genericworkflowmainform" enctype="multipart/form-data"> <p:panel id="actionlist"> <div align="right"> <p:commandbutton id="addactionbutton" value="add action" update="actiontable" action="#{creategenericworkflowbean.addaction}" ajax="false"> <p:collector id="addactioncollector" value="#{creategenericworkflowbean.actionrow}" addto="#{creategenericworkflowbean.genericworkflowdata.actiongroup.actioncompletionlist}"/> </p:commandbutton> </div> <h:datatable id="actiontable" var="actions" value="#{creategenericworkflowbean.genericworkflowdata.actiongroup.actioncompletionlist}"> <h:column> <h:outputlabel value="action " /> <h:inputtextarea id="actiontext" value="#{actions.actionrecord.actiontext}" /> <br/> <p:panel id ="actioneepanel"> <div align="right"> <p:commandbutton id="addapproverbutton" value="add approver" onclick="addapprover.show()"/> </div> <h:datatable value="#{actions.actionrecord.actionees}" id="actioneelistvalues" var="actioneerecord"> <h:column> <h:outputtext id="actioneelabel" value="actionee " /> <h:outputtext id="actionee" value="#{actioneerecord.user.user.name}" /> <h:outputtext id="actioneecommentlabel" value="comments " rendered="#{actioneerecord.user.display}"/> <h:inputtextarea id ="actioneecomment" value="#{actioneerecord.usercomment}" rendered="#{actioneerecord.user.display}"/> <br/> <p:commandlink id="removeactionee" value="remove" update="actioneelistvalues" rendered="#{!actioneerecord.user.display}"> <p:collector value="#{actioneerecord}" removefrom="#{actions.actionrecord.actionees}"/> </p:commandlink> </h:column> </h:datatable> <p:dialog id="addapprover" header="add approver" widgetvar="addapprover" modal="false" closable="false" resizable="false" width="250"> <div> <p:autocomplete id="autocompleteapprover" value="#{creategenericworkflowbean.newapprover}" /**//> <br/> <p:commandbutton id="addnewapprover" title="add approver" value="add" update="actioneelistvalues" onclick="addapprover.hide()" ajax="false" action="#{creategenericworkflowbean.addapprover()}"> <p:collector value="#{creategenericworkflowbean.newapprover}" addto="#{actions.actionrecord.actionees}"/> </p:commandbutton> </div> </p:dialog> </p:panel> </h:column> </h:datatable> </p:panel> </h:form> </ui:define> </ui:composition>
below parts of backing bean relate p:collector adding , removing portions of list.
@named @conversationscoped public class creategenericworkflowbean extends workflowbean { @inject conversation conversation; private actionee newapprover; private actioncompletionrecord actionrow = new actioncompletionrecord(); private actionee actioneerow = new actionee(); public genericworkflowdata getgenericworkflowdata() { return (genericworkflowdata) getdata(); } public void addapprover() { setnewapprover(new actionee()); } public void addaction() { actionrow = new actioncompletionrecord(); } }
i still learning jsf , primefaces, not know if i've done never work.
any appreciated.
matt tatham
the entity class has @override methods, generated while creating new entity through create new entity wizard. remove overridden methods entity , save it. thats all. work.
Comments
Post a Comment