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

Reply via email to