I am creating a Help Ticketing system and I am following the SEAM documenation and making use of the EntityHome for CRUDing my Ticket Entity. The initial creation and updating works great, however when I go to view tickets, then click on a ticket which gets redirected back to my original ticket.xhtml page, with ticketId as a parameter, I can not for the life of me get the ticket to display.
I need another pair of eyes to see where I am going wrong. ticket.xhtml | <ui:composition xmlns="http://www.w3.org/1999/xhtml" | xmlns:s="http://jboss.com/products/seam/taglib" | xmlns:ui="http://java.sun.com/jsf/facelets" | xmlns:f="http://java.sun.com/jsf/core" | xmlns:h="http://java.sun.com/jsf/html" | template="template.xhtml"> | | <ui:define name="content"> | | <h1 class="center"> | <h:outputText rendered="#{!ticketHome.managed}" value="Create Ticket"/> | <h:outputText rendered="#{ticketHome.managed}" value="Edit Ticket"/> | </h1> | | <h:messages globalOnly="true" styleClass="message"/> | | <h:form id="createTicket"> | <f:facet name="beforeInvalidField"> | <s:message/> | </f:facet> | <f:facet name="afterInvalidField"> | <h:graphicImage src="img/error.gif"/> | </f:facet> | <f:facet name="aroundInvalidField"> | <s:span styleClass="errors"/> | </f:facet> | | <s:validateAll> | | <table class="form-center"> | | <tr> | <td colspan="2" align="center" class="table-heading">Contact Information</td> | </tr> | <tr> | <td class="name">Name</td> | <td align="right"> | <s:decorate> | <h:inputText id="name" required="true" value="#{ticketHome.instance.name}"/> | </s:decorate> | </td> | </tr> | <tr> | <td> | <span class="name">Problem Description</span> | </td> | <td align="right"> | <s:decorate> | <h:inputTextarea id="problemDescription" required="true" cols="50" rows="20" value="#{ticketHome.instance.problemDescription}"/> | </s:decorate> | </td> | </tr> | | <tr> | <td></td> | <td align="right"> | <h:commandButton value="Create Ticket" action="#{ticketHome.persist}" rendered="#{!ticketHome.managed}"/> | <h:commandButton value="Update Ticket" action="#{ticketHome.update}" rendered="#{ticketHome.managed}"/> | <h:commandButton value="Delete Ticket" action="#{ticketHome.remove}" rendered="#{ticketHome.managed}"/> | <s:link id="done" value="Done" linkStyle="button" propagation="end" view="/viewTickets.xhtml"/> | </td> | </tr> | | </table> | </s:validateAll> | </h:form> | | </ui:define> | </ui:composition> | Ticket.java | @Entity | @Name("ticket") | @Role(name="tempTicket", scope=ScopeType.EVENT) | @Table(name="tickets") | public class Ticket implements Serializable { | | //seam-gen attributes (you should probably edit these) | private int id; | private Integer version; | private String name; | | | @Id @GeneratedValue | public int getId() { | return id; | } | | public void setId(int id) { | this.id = id; | } | | @Version | public Integer getVersion() { | return version; | } | | private void setVersion(Integer version) { | this.version = version; | } | | @NotNull | @Column(length=50) | @Length(max=50) | public String getName() { | return name; | } | | @Lob | public String getProblemDescription() { | return problemDescription; | } | | public void setProblemDescription(String problemDescription) { | this.problemDescription = problemDescription; | } | | } | | viewTickets.xhtml | <!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" | xmlns:a="https://ajax4jsf.dev.java.net/ajax" | template="template.xhtml"> | | <!-- content --> | <ui:define name="content"> | <div class="center"> | <h1>Tickets</h1> | </div> | | <!-- Display the form for searching for tickets--> | <s:validateAll> | <table cellspacing="1" cellpadding="1" border="0" class="form-center"> | <tr> | <td> | Subject: | </td> | <td> | <h:inputText value="#{tempTicket.subject}"/> | </td> | </tr> | | <tr> | <td> </td> | <td align="right"> | <h:commandButton value="Search" action="#{viewTickets.view}" styleClass="button" /> | </td> | </tr> | </table> | </s:validateAll> | <br /> | <br /> | | <!-- ***************************************************************** --> | <!-- Data Table of Tickets --> | <!-- ***************************************************************** --> | <h:dataTable value="#{tickets}" | var="ticket" | rendered="#{tickets.rowCount > 0}" | styleClass="fiapps-table"> | | <!-- Ticket Number --> | <h:column> | <f:facet name="header"> | <h:commandLink value="Ticket #" action="#{viewTickets.reorder}"> | <f:param name="orderBy" value="id"/> | </h:commandLink> | </f:facet> | <s:link id="ticket" value="#{ticket.id}" view="/ticket.xhtml"> | <f:param name="ticketId" value="#{ticket.id}"/> | </s:link> | </h:column> | | <!-- Subject --> | <h:column> | <f:facet name="header"> | <h:commandLink value="Subject" action="#{viewTickets.reorder}"> | <f:param name="orderBy" value="subject"/> | </h:commandLink> | </f:facet> | <h:outputText value="#{ticket.subject}" /> | </h:column> | | </h:dataTable> | <br /> | <h:messages/> | <br /> | <div class="center"> | <h:commandButton rendered="#{tickets.rowCount > 0}" | type="submit" | value="Refresh" | action="#{viewTickets.findFirstPage}" /> | <h:commandButton action="#{viewTickets.findPreviousPage}" | value="Previous Page" | disabled="#{!viewTickets.previousPage}" | rendered="#{tickets.rowCount > 0}"/> | <h:commandButton action="#{viewTickets.findNextPage}" | value="Next Page" | disabled="#{!viewTickets.nextPage}" | rendered="#{tickets.rowCount > 0}"/> | </div> | </h:form> | <br /> | </ui:define> | | </ui:composition> | | when I click on the Ticket Number I get in the url bar: http://localhost:8080/fiapps/ticket.seam?ticketId=1&dataModelSelection=ticket%3Atickets%5B0%5D so I know the ticketId is getting passed. But the ticket is not getting loaded. Here are some additional classes. TicketHome.java | @Name("ticketHome") | public class TicketHome extends EntityHome<Ticket> { | | | @Factory("ticket") | public Ticket initPerson() { | return getInstance(); | } | | protected Ticket createInstance() { | Ticket ticket = new Ticket(); | return ticket; | } | | public String getCreatedMessage() { return "New Ticket (#{ticket.subject}) created"; } | public String getUpdatedMessage() { return "Ticket (#{ticket.subject}) updated"; } | public String getDeletedMessage() { return "Ticket (#{ticket.subject}) deleted"; } | } | ViewTicketsBean.java - the relevant part | @Name("viewTickets") | @Stateful | @Scope(ScopeType.CONVERSATION) | public class ViewTicketsBean implements ViewTickets { | | @In(create=false, value="tempTicket") @Out(value="tempTicket") | private Ticket tempTicket; | | @Logger | private Log log; | | @DataModel | private List<Ticket> tickets; | | @DataModelSelection | private Ticket ticket; | | @In(create=true) | private EntityManager entityManager; | | ... | Any help would be greatly appreciated. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3986663#3986663 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3986663 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
