Below is the showUsers.jsp.

What I want to use is allow the user to click on the R or the S  and for that 
to bind to the userFinder.findFirstPage which will look for the start variable 
which is set to R or S and find all users that start with and R or S and return 
the list.

As I said before, when going to the page for the first time, the link will just 
refresh the page and do nothing and no output, however, if I first search for a 
user, then I click on the R or the S links, then it all works.

showUsers.jsp:


  | <h:form>
  | <table> 
  |     <tr > 
  |             <td><h2>Users</h2></td> 
  |     </tr> 
  |     <div> 
  |             <table> 
  |                     <tr> 
  |                             <td align="left"> 
  |                                     ...
  |                                     ...
  |                                     ...
  |                                     <h:commandLink value="R" 
action="#{userFinder.findFirstPage}">
  |                                             <f:param name="start" 
value="R"/>
  |                                     </h:commandLink>
  |                                     <h:commandLink value="S" 
action="#{userFinder.findFirstPage}">
  |                                             <f:param name="start" 
value="S"/>
  |                                     </h:commandLink>
  |                                     ...
  |                                     ...
  |                                     ... 
  |                             </td> 
  |                     </tr> 
  |             </table> 
  |     </div> 
  | <table> 
  |     <tr> 
  |             <td colspan="5"> 
  |                     <div> 
  |                             <div> 
  |                                     <div> 
  |                                             <div> 
  |                                                     <span>User:</span>
  |                                                     <h:inputText 
value="#{userFinder.example.username}" size="15" required="true"/>
  |                                                     <h:commandButton 
type="submit" value="Search" action="#{userFinder.findFirstPage}"/>
  |                                             </div> 
  |                                             <br />
  |                                             <h:selectManyCheckbox 
  |                                                             
value="#{userFinder.searchColumns}"
  |                                                             
layout="lineDirection" 
  |                                                             required="true">
  |                                                     <f:selectItems 
value="#{userFinder.searchColumnItems}" />
  |                                             </h:selectManyCheckbox>
  |                                             <br />
  |                                             <span>(for wildcard search use 
%)</span> 
  |                                     </div> 
  |                             </div> 
  |                     </div> 
  |             </td> 
  |     </tr>
  | </table> 
  | 
  |     <h:dataTable value="#{userList}" var="user" 
rendered="#{userList.rowCount > 0}">
  |             <h:column>
  |                     <f:facet name="header">
  |                                     <h:commandLink value="Username" 
action="#{userFinder.reorder}">
  |                                             <f:param name="orderBy" 
value="username"/>
  |                                     </h:commandLink>
  |                     </f:facet>
  |                     <h:outputText value="#{user.username}"/>
  |             </h:column>
  |             
  |             <h:column>
  |                     <f:facet name="header">
  |                                     <h:commandLink value="Company" 
action="#{userFinder.reorder}">
  |                                             <f:param name="orderBy" 
value="company"/>
  |                                     </h:commandLink>
  |                     </f:facet>
  |                     <h:outputText value="#{user.company}"/>
  |             </h:column>
  |             
  |             <h:column>
  |                     <f:facet name="header">
  |                             <h:outputText value="Name"/>
  |                     </f:facet>
  |                     <h:outputText value="#{user.firstName} 
#{user.lastName}"/>
  |             </h:column>
  |             
  |             <h:column>
  |                     <f:facet name="header">
  |                                     <h:commandLink value="Email Address" 
action="#{userFinder.reorder}">
  |                                             <f:param name="orderBy" 
value="email"/>
  |                                     </h:commandLink>
  |                     </f:facet>
  |                     <h:outputText value="#{user.email}"/>
  |             </h:column>
  |             
  |             <h:column>
  |                     <f:facet name="header">
  |                                     <h:commandLink value="Active" 
action="#{userFinder.reorder}">
  |                                             <f:param name="orderBy" 
value="active"/>
  |                                     </h:commandLink>
  |                     </f:facet>
  |                     <h:outputText value="#{user.active}"/>
  |             </h:column>
  |     </h:dataTable>
  | 
  |     <h:commandButton action="#{userFinder.findPreviousPage}" 
value="Previous Page" disabled="#{!userFinder.previousPage}" />
  |     <h:commandButton action="#{userFinder.findNextPage}" value="Next Page" 
disabled="#{!userFinder.nextPage}" />
  | </h:form>
  | 


Here is my UserFinderBean with only the relevant information to this question.  
If you want to see the full code, see my previous post.

  | @Name("userFinder")
  | @Stateful
  | @Scope(ScopeType.SESSION)
  | public class UserFinderBean implements UserFinder {
  | 
  |     @DataModel
  |     private List<User> userList;
  |     
  |     @DataModelSelection
  |     private User selectedUser;
  |     
  |     @PersistenceContext
  |     private EntityManager entityManager;
  |     
  |     private void executeQuery() {
  |             Map<String, Object> parameters = new HashMap<String, Object>();
  |             StringBuffer queryString = new StringBuffer();
  | 
  |             if(start != null && !start.equals("")) {
  |                     queryString.append(" or user.username" + " like :value 
or user.username like :valuetwo ");
  |                     parameters.put("value", start + "%");
  |                     parameters.put("valuetwo", start.toLowerCase() + "%");
  |             }
  | 
  |             Query query = entityManager.createQuery(queryString.toString());
  |             for (Entry <String, Object> param : parameters.entrySet()) {
  |                             query.setParameter( param.getKey(), 
param.getValue() );
  |             }
  |             userList = (List<User>) query.setMaxResults(pageSize)
  |                                             
.setFirstResult(pageSize*pageNumber)
  |                                             .getResultList();
  |     }
  |     
  |     public String findFirstPage() {
  |                     executeQuery();
  |                     return null;
  |     }
  |             
  |     @Destroy @Remove
  |     public void destroy() {}
  |     
  |             
  |     @RequestParameter
  |     private String start;
  | 
  | }
  | 

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

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

Reply via email to