Hi people I've fighting for a couple of days with a page. In a few words, I've a page that has a datatable, and 2 more sections that are rendered each one depending of the selected action
This is my page.... | | <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | <ui:composition xmlns="http://www.w3.org/1999/xhtml" | xmlns:ui="http://java.sun.com/jsf/facelets" | xmlns:h="http://java.sun.com/jsf/html" | xmlns:f="http://java.sun.com/jsf/core" | xmlns:s="http://jboss.com/products/seam/taglib" | template="/WEB-INF/templates/template.xhtml"> | | <!-- content --> | | <ui:define name="content"> | <div class="section"> | <h:form id="searchForm"> | <span class="errors"><h:messages globalOnly="true"/></span> | <h1>Buscar Padron</h1> | <fieldset> | <h:inputText value="#{personController.searchString}" style="width: 165px;"/> | <h:commandButton value="Buscar Padron" action="personCRUD" styleClass="button"/> | </fieldset> | </h:form> | </div> | | | <div class="section"> | <h:form id="dataTableForm"> | <h:outputText value="No se encontraron datos" rendered="#{model != null and model.rowCount==0}"/> | <br/> | <s:link value="Crear nuevo" action="#{personEditor.createEntity}" buttonClass="button" linkStyle="button"/> | <br/> | <h:dataTable value="#{model}" var="e" rendered="#{model.rowCount>0}"> | <h:column> | <f:facet name="header">Razon social</f:facet> | #{e.razonSocial} | </h:column> | <h:column> | <f:facet name="header">CUIT/CUIL</f:facet> | #{e.fiscalID} | </h:column> | <h:column> | <f:facet name="header">Action</f:facet> | | <h:commandButton action="#{personEditor.displayEntity}" styleClass="button" value="ver"/> | <h:commandButton action="#{personEditor.updateEntity}" styleClass="button" value="modificar"/> | <h:commandButton action="#{personEditor.removeEntity}" styleClass="button" value="eliminar"/> | </h:column> | </h:dataTable> | </h:form> | </div> | | <f:subview rendered="#{personEditor.entity!=null and (personEditor.currentOperation=='DISPLAY' or personEditor.currentOperation=='REMOVE') }"> | <div class="section"> | <h1>View Hotel</h1> | </div> | <div class="section"> | <div class="entry"> | <div class="label">CUIT/CUIL</div> | <div class="output">#{personEditor.entity.fiscalID}</div> | </div> | <div class="entry"> | <div class="label">Razon Social:</div> | <div class="output">#{personEditor.entity.razonSocial}</div> | </div> | <div class="entry"> | <div class="label">Nombre Completo:</div> | <div class="output">#{personEditor.entity.completeName}</div> | </div> | </div> | <h:form id="staticForm"> | <div class="entry"> | <div class="label"><f:verbatim> </f:verbatim></div> | <div class="input"> | <h:commandButton value="Eliminar" action="#{personEditor.perform}" styleClass="button" rendered="#{personEditor.currentOperation=='REMOVE'}"/> | <s:link value="Volver" action="#{personEditor.cleanState}" buttonClass="button" linkStyle="button"/> | </div> | </div> | </h:form> | </f:subview> | | | <f:subview rendered="#{personEditor.entity!=null and (personEditor.currentOperation=='UPDATE' or personEditor.currentOperation=='CREATE')}"> | <div class="section"> | <h1>View Hotel</h1> | </div> | <h:form id="dynamicForm"> | <s:validateAll> | <div class="entry"> | <div class="label"><h:outputLabel for="fiscalID">CUIT/CUIL:</h:outputLabel></div> | <div class="input"> | <h:inputText id="fiscalID" value="#{personEditor.entity.fiscalID}" required="true"> | | </h:inputText> | <br/><span class="errors"><h:message for="fiscalID"/></span> | </div> | </div> | <div class="entry"> | <div class="label"><h:outputLabel for="razonSocial">Razon Social</h:outputLabel></div> | <div class="input"> | <h:inputText id="razonSocial" value="#{personEditor.entity.razonSocial}" required="true"> | </h:inputText> | <br/><span class="errors"><h:message for="razonSocial"/></span> | </div> | </div> | <div class="entry"> | <div class="label"><h:outputLabel for="completeName">Nombre Completo</h:outputLabel></div> | <div class="input"> | <h:inputText id="completeName" value="#{personEditor.entity.completeName}" required="true"> | </h:inputText> | <br/><span class="errors"><h:message for="completeName"/></span> | </div> | </div> | <div class="entry"> | <div class="label"><h:outputLabel for="password">Password:</h:outputLabel></div> | <div class="input"> | <h:inputSecret id="password" value="#{personEditor.entity.password}" required="true"/><br/> | <span class="errors"><h:message for="password"/></span> | </div> | </div> | </s:validateAll> | <div class="entry errors"><h:messages globalOnly="true"/></div> | <div class="entry"> | <div class="label"><f:verbatim> </f:verbatim></div> | <div class="input"> | <h:commandButton value="Modificar" action="#{personEditor.perform}" styleClass="button" rendered="#{personEditor.currentOperation=='UPDATE'}"/> | <h:commandButton value="Crear" action="#{personEditor.perform}" styleClass="button" rendered="#{personEditor.currentOperation=='CREATE'}"/> | | <s:link value="Volver" action="#{personEditor.cleanState}" buttonClass="button" linkStyle="button"/> | </div> | </div> | </h:form> | </f:subview> | | </ui:define> | </ui:composition> | As you can see, I've this in my datatable... | <h:column> | <f:facet name="header">Action</f:facet> | | <h:commandButton action="#{personEditor.displayEntity}" styleClass="button" value="ver"/> | <h:commandButton action="#{personEditor.updateEntity}" styleClass="button" value="modificar"/> | <h:commandButton action="#{personEditor.removeEntity}" styleClass="button" value="eliminar"/> | </h:column> | If I use a commandButton, everything works like a charm, but, If I change it with... | <h:column> | <f:facet name="header">Action</f:facet> | [<s:link value="ver" action="#{personEditor.displayEntity}"/>] | [<s:link value="modificar" action="#{personEditor.updateEntity}"/>] | [<s:link value="eliminar" action="#{personEditor.removeEntity}"/>] | </h:column> | | My dataTableSelection in my PersonFinder never loads (It's null always) then, I can't edit, view or update. I don't know If you need any more information, I think it's a problem in my page! Anyway, I'll show you my actions anyway | package manchot.actions; | | import java.util.List; | | import javax.ejb.EJB; | import javax.ejb.Remove; | import javax.ejb.Stateful; | | import manchot.model.Person; | import manchot.services.PersonService; | | import org.jboss.seam.ScopeType; | import org.jboss.seam.annotations.Destroy; | import org.jboss.seam.annotations.Factory; | import org.jboss.seam.annotations.In; | import org.jboss.seam.annotations.Name; | import org.jboss.seam.annotations.Scope; | import org.jboss.seam.annotations.datamodel.DataModel; | import org.jboss.seam.annotations.datamodel.DataModelSelection; | | @Name("personFinder") | @Stateful | @Scope(ScopeType.EVENT) | @LoggedIn | public class PersonFinderBean implements PersonFinder { | | @EJB | private PersonService personService; | | @DataModel(scope=ScopeType.PAGE) | private List<Person> model; | | @DataModelSelection | private Person selected; | | @In(create=true) | private PersonController personController; | | @Factory("model") | public void findModel() { | model = (personService.findByNameLike(personController.getSearchString())); | } | | public void refresh(){ | findModel(); | } | | @Destroy | @Remove | public void destroy() { | } | | public Person getSelected() { | return selected; | } | } | | package manchot.actions; | | import javax.ejb.EJB; | import javax.ejb.Remove; | import javax.ejb.Stateful; | import javax.ejb.TransactionAttribute; | import javax.ejb.TransactionAttributeType; | | import manchot.actions.util.Operations; | import manchot.model.Person; | import manchot.services.PersonService; | | import org.hibernate.validator.Valid; | import org.jboss.seam.annotations.Begin; | import org.jboss.seam.annotations.Destroy; | import org.jboss.seam.annotations.End; | import org.jboss.seam.annotations.In; | import org.jboss.seam.annotations.Name; | | @Name("personEditor") | @Stateful | @LoggedIn | public class PersonEditorBean implements PersonEditor { | | private Operations currentOperation; | | @EJB | private PersonService personService; | | @In(create=true) | private PersonFinder personFinder; | | @Valid | private Person person; | | | public Operations getCurrentOperation() { | return currentOperation; | } | | public void setCurrentOperation(Operations currentOperation) { | this.currentOperation = currentOperation; | } | | @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED) | public Person getEntity() { | return person; | } | | public void setEntity(Person entity) { | this.person = entity; | } | @Begin(join=true) | public String displayEntity() { | setEntity(personFinder.getSelected()); | currentOperation=Operations.DISPLAY; | return "personCRUD"; | } | @Begin(join=true) | public String updateEntity() { | setEntity(personFinder.getSelected()); | currentOperation=Operations.UPDATE; | return "personCRUD"; | } | @Begin(join=true) | public String createEntity() { | setEntity(new Person()); | currentOperation=Operations.CREATE; | return "personCRUD"; | } | | @Begin(join=true) | public String removeEntity() { | setEntity(personFinder.getSelected()); | currentOperation=Operations.REMOVE; | return "personCRUD"; | } | @End | public String cleanState() { | setEntity(null); | setCurrentOperation(null); | return "personCRUD"; | } | @End | public String perform() { | if(currentOperation==Operations.REMOVE){ | personService.remove(person); | }else{ | personService.save(person); | } | return cleanState(); | } | | @Destroy | @Remove | public void destroy() { | } | } | | | package manchot.actions; | | import javax.ejb.Remove; | | @Name("personController") | @Stateful | @Scope(ScopeType.SESSION) | @LoggedIn | public class PersonControllerBean implements PersonController { | | private String searchString=""; | | public String getSearchString() { | return searchString; | } | | public void setSearchString(String searchString) { | this.searchString = searchString; | } | | @Destroy | @Remove | public void destroy() { | } | } | Thanks!!! View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3963070#3963070 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3963070 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user