I have a jsf datatable thats maps to a personlist list of person objects. While 
displaying the list of person objects I need to lookup a special attendance 
code in another table. I am thinking the best way is to call a method the 
PersonFinderBean called getSecurityCode(). This will go "lookup" the 
securitycode in the attendance table given the person ID.

I have posted the JSF and SFSB. My question is this the correct way of doing 
this in Seam?

uPersonCheckin.jsp


  | <%@ taglib uri="http://java.sun.com/jsf/html"; prefix="h" %>
  | <%@ taglib uri="http://java.sun.com/jsf/core"; prefix="f" %>
  | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
  | <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
  | <f:view>
  | <f:loadBundle basename="messages" var="msg"/>
  |  <head>
  |  
  |   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  |   <title>Kidslife Checkin</title>
  |   <style type="text/css" media="all">
  |     @import "style/default/screen.css";
  |   </style>
  |  </head>
  |  <body>
  |  
  |   <%@ include file="header.htm" %>
  |  
  |   <h:form>
  | 
  |      <div class="rvgFind">
  |        <fieldset class="rvgFieldSet">
  |          <legend><h:outputText value="#{msg.Person} 
#{msg.SearchCriteria}"/></legend>
  |          
  |          <span class="rvgInputs">
  |            <h:outputLabel value="#{msg.Person_firstName}" for="firstName">
  |              <h:inputText value="#{personFinder.example.firstName}" 
id="firstName"/>
  |            </h:outputLabel>
  |            <h:outputLabel value="#{msg.Person_lastName}" for="lastName">
  |              <h:inputText value="#{personFinder.example.lastName}" 
id="lastName"/>
  |            </h:outputLabel>
  |          </span>
  |          
  |          <span class="rvgActions">
  |            <h:commandButton type="submit" value="#{msg.Clear}" 
action="#{personFinder.clear}"/>
  |            <h:commandButton type="submit" value="#{msg.Find}" 
action="#{personFinder.findFirstPage}"/>
  |          </span>
  |          
  |        </fieldset>
  |      </div>
  |      
  |      <div class="rvgResults">
  |      
  |      <span class="rvgResultsNone">
  |        <h:outputText value="#{msg.EnterSearchCriteria}" 
rendered="#{personList==null}"/>
  |        <h:outputText value="#{msg.No} #{msg.Person} 
#{msg.MatchedSearchCriteria}" rendered="#{personList.rowCount==0 && 
!personFinder.previousPage}"/>
  |      </span>
  |      
  |      <h:dataTable value="#{personList}" var="person" 
rendered="#{personList.rowCount>0}" 
  |            rowClasses="rvgRowOne,rvgRowTwo" headerClass="rvgOrder">
  |             <h:column>
  |                     <f:facet name="header">
  |                             <h:outputText value="Edit"/>
  |                     </f:facet>
  |                 <h:commandLink value="profile" 
action="#{personFinder.edit}">
  |                    <f:param name="id" value="#{id}"/>
  |                 </h:commandLink>
  |             </h:column>
  |             <h:column>
  |                     <f:facet name="header">
  |                             <h:outputText value="Register"/>
  |                     </f:facet>
  |                 <h:commandLink value="checkin" 
action="#{personFinder.checkIn}">
  |                    <f:param name="id" value="#{id}"/>
  |                 </h:commandLink>
  |             </h:column>
  |             <h:column>
  |                     <f:facet name="header">
  |                             <h:outputText value="Security Code"/>
  |                     </f:facet>
  |                     <h:outputText value="#{personFinder.securityCode}"/>
  |             </h:column>
  |             <h:column>
  |                     <f:facet name="header">
  |                         <h:commandLink value="#{msg.Person_firstName}" 
action="#{personFinder.reorder}">
  |                            <f:param name="orderBy" value="firstName"/>
  |                         </h:commandLink>
  |                     </f:facet>
  |                     <h:outputText value="#{person.firstName}"/>
  |             </h:column>
  |             <h:column>
  |                     <f:facet name="header">
  |                         <h:commandLink value="#{msg.Person_middleName}" 
action="#{personFinder.reorder}">
  |                            <f:param name="orderBy" value="middleName"/>
  |                         </h:commandLink>
  |                     </f:facet>
  |                     <h:outputText value="#{person.middleName}"/>
  |             </h:column>
  |             <h:column>
  |                     <f:facet name="header">
  |                         <h:commandLink value="#{msg.Person_lastName}" 
action="#{personFinder.reorder}">
  |                            <f:param name="orderBy" value="lastName"/>
  |                         </h:commandLink>
  |                     </f:facet>
  |                     <h:outputText value="#{person.lastName}"/>
  |             </h:column>
  |      </h:dataTable>
  | 
  |      <span class="rvgPage">
  |        <h:commandButton action="#{personFinder.findPreviousPage}" 
value="#{msg.PreviousPage}" disabled="#{!personFinder.previousPage}" />
  |        <h:commandButton action="#{personFinder.findNextPage}" 
value="#{msg.NextPage}" disabled="#{!personFinder.nextPage}" />
  |        <h:commandButton action="editPerson" value="#{msg.Create}" 
rendered="#{personSelector.createEnabled}"/>
  |        <h:commandButton action="#{personSelector.selectNone}" 
value="#{msg.SelectNone}" rendered="#{!personSelector.createEnabled}"/>
  |        <h:commandButton action="#{personSelector.cancel}" 
value="#{msg.Cancel}" rendered="#{!personSelector.createEnabled}"/>
  |      </span>
  |      
  |      </div>
  |     
  |   </h:form>
  |     
  |  </body>
  | </f:view>
  | </html>
  | 

PersonFinderBean


  | package testSeam;
  | 
  | // Generated Sep 23, 2006 1:30:01 PM by Hibernate Tools 3.2.0.beta7
  | 
  | import static javax.ejb.TransactionAttributeType.NOT_SUPPORTED;
  | 
  | import java.util.HashMap;
  | import java.util.List;
  | import java.util.Map;
  | import java.util.Map.Entry;
  | import java.util.Random;
  | import java.util.Date;
  | import javax.ejb.Remove;
  | import javax.ejb.Stateful;
  | import javax.ejb.TransactionAttribute;
  | import javax.interceptor.Interceptors;
  | import javax.persistence.EntityManager;
  | import javax.persistence.Query;
  | import org.jboss.seam.ScopeType;
  | import org.jboss.seam.annotations.Destroy;
  | import org.jboss.seam.annotations.In;
  | import org.jboss.seam.annotations.Out;
  | import org.jboss.seam.annotations.Begin;
  | import org.jboss.seam.annotations.End;
  | import org.jboss.seam.annotations.Name;
  | import org.jboss.seam.annotations.RequestParameter;
  | import org.jboss.seam.annotations.Scope;
  | import org.jboss.seam.annotations.datamodel.DataModel;
  | import org.jboss.seam.annotations.datamodel.DataModelSelection;
  | import org.jboss.seam.ejb.SeamInterceptor;
  | 
  | @Name("personFinder")
  | @Stateful
  | @Scope(ScopeType.SESSION)
  | @Interceptors(SeamInterceptor.class)
  | public class PersonFinderBean implements PersonFinder {
  | 
  |     private Person example = new Person();
  | 
  |     public Person getExample() {
  |             return example;
  |     }
  | 
  |     @DataModelSelection
  |     @Out(required=false)
  |     private Person selectedPerson;
  |     
  |     @In(required=false)
  |     private Login login;
  |     
  |     @In(create=true)
  |     private AttendanceEditor attendanceEditor;
  |     
  |     private int pageNumber = 0;
  |     private int pageSize = 20;
  |     private boolean registered = false;
  | 
  |     public void setRegistered(boolean value) {
  |             registered = value;
  |     }
  |     
  |     public boolean getRegistered() {
  |             return registered;
  |     }
  | 
  |     public void setPageSize(int size) {
  |             pageSize = size;
  |     }
  | 
  |     public int getPageSize() {
  |             return pageSize;
  |     }
  | 
  |     public boolean isPreviousPage() {
  |             return personList != null && pageNumber > 0;
  |     }
  | 
  |     public boolean isNextPage() {
  |             return personList != null && personList.size() == pageSize;
  |     }
  | 
  |     @DataModel
  |     private List<Person> personList;
  | 
  |     @In(create = true)
  |     private EntityManager entityManager;
  | 
  |     private void executeQuery() {
  |             Map<String, Object> parameters = new HashMap<String, Object>();
  |             StringBuffer queryString = new StringBuffer();
  |             if (example.getId() != 0) {
  |                     queryString.append(" and person.id = :id");
  |                     parameters.put("id", example.getId());
  |             }
  |             if (example.getRoomId() != 0) {
  |                     queryString.append(" and person.roomId = :roomId");
  |                     parameters.put("roomId", example.getRoomId());
  |             }
  |             if (example.getOrganizationId() != 0) {
  |                     queryString.append(" and person.organizationId = 
:organizationId");
  |                     parameters.put("organizationId", 
example.getOrganizationId());
  |             }
  |             if (example.getFirstName() != null && 
example.getFirstName().length() > 0) {
  |                     queryString.append(" and person.firstName like 
:firstName");
  |                     parameters.put("firstName", '%' + 
example.getFirstName() + '%');
  |             }
  |             if (example.getMiddleName() != null
  |                             && example.getMiddleName().length() > 0) {
  |                     queryString.append(" and person.middleName like 
:middleName");
  |                     parameters.put("middleName", '%' + 
example.getMiddleName() + '%');
  |             }
  |             if (example.getLastName() != null && 
example.getLastName().length() > 0) {
  |                     queryString.append(" and person.lastName like 
:lastName");
  |                     parameters.put("lastName", '%' + example.getLastName() 
+ '%');
  |             }
  |             if (example.getAddress1() != null && 
example.getAddress1().length() > 0) {
  |                     queryString.append(" and person.address1 like 
:address1");
  |                     parameters.put("address1", '%' + example.getAddress1() 
+ '%');
  |             }
  |             if (example.getCity() != null && example.getCity().length() > 
0) {
  |                     queryString.append(" and person.city like :city");
  |                     parameters.put("city", '%' + example.getCity() + '%');
  |             }
  |             if (example.getState() != null && example.getState().length() > 
0) {
  |                     queryString.append(" and person.state like :state");
  |                     parameters.put("state", '%' + example.getState() + '%');
  |             }
  |             if (example.getZip() != null && example.getZip().length() > 0) {
  |                     queryString.append(" and person.zip like :zip");
  |                     parameters.put("zip", '%' + example.getZip() + '%');
  |             }
  |             if (example.getEmail() != null && example.getEmail().length() > 
0) {
  |                     queryString.append(" and person.email like :email");
  |                     parameters.put("email", '%' + example.getEmail() + '%');
  |             }
  |             if (example.getBirthday() != null) {
  |                     queryString.append(" and person.birthday = :birthday");
  |                     parameters.put("birthday", example.getBirthday());
  |             }
  |             if (example.getSex() != null) {
  |                     queryString.append(" and person.sex = :sex");
  |                     parameters.put("sex", example.getSex());
  |             }
  |             if (example.getHomePhone() != null
  |                             && example.getHomePhone().length() > 0) {
  |                     queryString.append(" and person.homePhone like 
:homePhone");
  |                     parameters.put("homePhone", '%' + 
example.getHomePhone() + '%');
  |             }
  |             if (example.getWorkPhone() != null
  |                             && example.getWorkPhone().length() > 0) {
  |                     queryString.append(" and person.workPhone like 
:workPhone");
  |                     parameters.put("workPhone", '%' + 
example.getWorkPhone() + '%');
  |             }
  |             if (example.getBeeperPhone() != null
  |                             && example.getBeeperPhone().length() > 0) {
  |                     queryString.append(" and person.beeperPhone like 
:beeperPhone");
  |                     parameters.put("beeperPhone", '%' + 
example.getBeeperPhone() + '%');
  |             }
  |             if (example.getCellPhone() != null
  |                             && example.getCellPhone().length() > 0) {
  |                     queryString.append(" and person.cellPhone like 
:cellPhone");
  |                     parameters.put("cellPhone", '%' + 
example.getCellPhone() + '%');
  |             }
  |             if (example.getExtraPhone() != null
  |                             && example.getExtraPhone().length() > 0) {
  |                     queryString.append(" and person.extraPhone like 
:extraPhone");
  |                     parameters.put("extraPhone", '%' + 
example.getExtraPhone() + '%');
  |             }
  |             if (example.getExtraPhoneMemo() != null
  |                             && example.getExtraPhoneMemo().length() > 0) {
  |                     queryString
  |                                     .append(" and person.extraPhoneMemo 
like :extraPhoneMemo");
  |                     parameters.put("extraPhoneMemo",
  |                                     '%' + example.getExtraPhoneMemo() + 
'%');
  |             }
  |             if (example.getSchool() != null && example.getSchool().length() 
> 0) {
  |                     queryString.append(" and person.school like :school");
  |                     parameters.put("school", '%' + example.getSchool() + 
'%');
  |             }
  |             if (example.getSchoolGrade() != null
  |                             && example.getSchoolGrade().length() > 0) {
  |                     queryString.append(" and person.schoolGrade like 
:schoolGrade");
  |                     parameters.put("schoolGrade", '%' + 
example.getSchoolGrade() + '%');
  |             }
  |             if (example.getContact() != null && 
example.getContact().length() > 0) {
  |                     queryString.append(" and person.contact like :contact");
  |                     parameters.put("contact", '%' + example.getContact() + 
'%');
  |             }
  |             if (example.getParentName() != null
  |                             && example.getParentName().length() > 0) {
  |                     queryString.append(" and person.parentName like 
:parentName");
  |                     parameters.put("parentName", '%' + 
example.getParentName() + '%');
  |             }
  |             if (example.getComments() != null && 
example.getComments().length() > 0) {
  |                     queryString.append(" and person.comments like 
:comments");
  |                     parameters.put("comments", '%' + example.getComments() 
+ '%');
  |             }
  |             if (example.getMinsitry() != null && 
example.getMinsitry().length() > 0) {
  |                     queryString.append(" and person.minsitry like 
:minsitry");
  |                     parameters.put("minsitry", '%' + example.getMinsitry() 
+ '%');
  |             }
  |             if (example.getDrama() != null) {
  |                     queryString.append(" and person.drama = :drama");
  |                     parameters.put("drama", example.getDrama());
  |             }
  |             if (example.getMusic() != null) {
  |                     queryString.append(" and person.music = :music");
  |                     parameters.put("music", example.getMusic());
  |             }
  |             if (example.getStatus() != null) {
  |                     queryString.append(" and person.status = :status");
  |                     parameters.put("status", example.getStatus());
  |             }
  |             if (example.getVisitor() != null) {
  |                     queryString.append(" and person.visitor = :visitor");
  |                     parameters.put("visitor", example.getVisitor());
  |             }
  |             if (example.getMailList() != null) {
  |                     queryString.append(" and person.mailList = :mailList");
  |                     parameters.put("mailList", example.getMailList());
  |             }
  |             if (example.getLeader() != null) {
  |                     queryString.append(" and person.leader = :leader");
  |                     parameters.put("leader", example.getLeader());
  |             }
  |             if (example.getLastAttended() != null) {
  |                     queryString.append(" and person.lastAttended = 
:lastAttended");
  |                     parameters.put("lastAttended", 
example.getLastAttended());
  |             }
  |             if (example.getCreated() != null) {
  |                     queryString.append(" and person.created = :created");
  |                     parameters.put("created", example.getCreated());
  |             }
  |             if (example.getUpdated() != null) {
  |                     queryString.append(" and person.updated = :updated");
  |                     parameters.put("updated", example.getUpdated());
  |             }
  |             if (example.getVcall() != null) {
  |                     queryString.append(" and person.vcall = :vcall");
  |                     parameters.put("vcall", example.getVcall());
  |             }
  |             if (example.getVhouseCall() != null) {
  |                     queryString.append(" and person.vhouseCall = 
:vhouseCall");
  |                     parameters.put("vhouseCall", example.getVhouseCall());
  |             }
  |             if (example.getTeam() != null && example.getTeam().length() > 
0) {
  |                     queryString.append(" and person.team like :team");
  |                     parameters.put("team", '%' + example.getTeam() + '%');
  |             }
  |             if (example.getPhotoFile() != null
  |                             && example.getPhotoFile().length() > 0) {
  |                     queryString.append(" and person.photoFile like 
:photoFile");
  |                     parameters.put("photoFile", '%' + 
example.getPhotoFile() + '%');
  |             }
  |             if (example.getUniqueId() != null && 
example.getUniqueId().length() > 0) {
  |                     queryString.append(" and person.uniqueId like 
:uniqueId");
  |                     parameters.put("uniqueId", '%' + example.getUniqueId() 
+ '%');
  |             }
  |             if (queryString.length() == 0) {
  |                     queryString.append("select person from Person person");
  |             } else {
  |                     queryString.delete(0, 4).insert(0,
  |                                     "select person from Person person 
where");
  |             }
  | 
  |             if (order != null) {
  |                     queryString.append(" order by person.").append(order);
  |                     if (descending)
  |                             queryString.append(" desc");
  |             }
  | 
  |             Query query = entityManager.createQuery(queryString.toString());
  |             for (Entry<String, Object> param : parameters.entrySet()) {
  |                     query.setParameter(param.getKey(), param.getValue());
  |             }
  |             personList = (List<Person>) query.setMaxResults(pageSize)
  |                             .setFirstResult(pageSize * 
pageNumber).getResultList();
  |     }
  | 
  |     public String findFirstPage() {
  |             pageNumber = 0;
  |             executeQuery();
  |             return null;
  |     }
  | 
  |     public String findNextPage() {
  |             pageNumber++;
  |             executeQuery();
  |             return null;
  |     }
  | 
  |     public String findPreviousPage() {
  |             pageNumber--;
  |             executeQuery();
  |             return null;
  |     }
  | 
  |     public void refresh() {
  |             if (personList != null)
  |                     executeQuery();
  |     }
  | 
  |     public String clear() {
  |             personList = null;
  |             example = new Person();
  |             return null;
  |     }
  | 
  |     public Person getSelection() {
  |             return entityManager.merge(selectedPerson);
  |     }
  | 
  |     @Destroy
  |     @Remove
  |     public void destroy() {
  |     }
  | 
  |     private String order;
  | 
  |     private boolean descending = false;
  | 
  |     @RequestParameter
  |     private String orderBy;
  |     private int id;
  | 
  |     public String reorder() {
  |             if (orderBy.equals(order)) {
  |                     descending = !descending;
  |             } else {
  |                     descending = false;
  |             }
  |             order = orderBy;
  |             executeQuery();
  |             return null;
  |     }
  | 
  |     @Begin
  |     @End
  |     public String checkIn() {
  |             // insert new record into attendance table
  |             Users loggedInUser = login.getInstance();
  |             
  |             System.out.println("I check'd em 
in...:"+selectedPerson.getId());
  |             System.out.println("I am from 
church:"+loggedInUser.getOrganizationId());
  |             
  |             java.util.Random rNum = new Random();
  |             int securityCode = Math.abs(rNum.nextInt());
  |             Attendance attend = attendanceEditor.getInstance();
  |             
  |             attend.setCheckedByUserId(loggedInUser.getId());
  |             attend.setDateTimeEntry(new Date());
  |             attend.setPersonId(selectedPerson.getId());
  |             attend.setRoomId(example.getRoomId());
  |             attend.setSecurityCode(""+securityCode);
  |             attend.setType("In");
  |             attendanceEditor.create();
  |             
  |             return "code:"+securityCode;
  |     }
  | 
  |     public String getSecurityCode() {
  |             Attendance attend = attendanceEditor.getInstance();
  |             
  |             //Here is where I want to do the lookup..
  |             return "special code";
  |     }
  |     
  |     public String edit() {
  |         return "/editPerson.jsp";
  |     }
  | }
  | 
  | 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3976815#3976815

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3976815
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to