Using JBoss 4.0.5 and Seam 1.2.1.GA.

In the below .xhtml file, the 
valueChangeListener="#{userRoleSearch.processValueChange}" does not fire the 
public processValueChange method in my SFSB when the commented <s:div> and 
</s:div> tags around it are uncommented.  It does execute when the tags are 
commented.  In either case, the drop-down is rendered.

Why does this happen?  I experienced the same thing with the <s:fragment> tag.  
Any help would be greatly appreciated...


  | 
  | <!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: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";
  |                 xmlns:rich="http://richfaces.ajax4jsf.org/rich";
  |                 template="layout/template.xhtml">
  |                 
  |                
  | 
  | <ui:define name="body">
  | 
  |     <h:messages globalOnly="true" styleClass="message"/>
  |     
  |     <rich:panel>
  |     
  |         <h:form>
  |             <h:outputText id="userRoleInfo" value="User-Role 
Information"/><br/>
  |             <h:outputText id="firstName" value="First Name:"/>
  |             <h:outputText id="lastName" value="Last Name:"/><br/>
  |             <h:inputText id="inputFirstName" 
value="#{userRoleSearch.searchStringFirstName}"/>
  |             <h:inputText id="inputLastName" 
value="#{userRoleSearch.searchStringLastName}"/>    
  |             
  |             <h:commandButton id="searchButton" value="Search" 
action="#{userRoleSearch.getUsers}"/>
  |             <h:commandButton id="resetButton" value="Reset" 
type="reset"/><br/><br/>
  |             
  |             <h:outputText value="No Users Found" 
rendered="#{userRoleSearch.isDisplay and userRoleSearch.rowCount==0}"/>
  |                 
  |            <!-- <s:div id="selectUserDD" 
rendered="#{userRoleSearch.isDisplay and userRoleSearch.rowCount>0}"> -->
  |                     
  |                             <h:outputText value="Select a user:"/>
  |                             
  |                             <h:selectOneMenu id="userFnameLname" 
valueChangeListener="#{userRoleSearch.processValueChange}" onchange="submit()">
  |                                 <f:selectItems 
value="#{userRoleSearch.populateUsers}"/>  
  |                             </h:selectOneMenu><br/><br/>
  |                     
  |                     <!-- </s:div>  -->
  |                             
  |                     
  |             <s:div id="selectRoleCheckBox" rendered="#{!empty 
userRoleSearch.currentUserId}"> 
  |                     <h:selectManyCheckbox id="userRoles">
  |                             <f:selectItems 
value="#{userRoleSearch.userRoles}"/>    
  |                     </h:selectManyCheckbox>
  |                 </s:div>
  |             
  |             
  |             <s:link id="viewUserRoleSummary" value="View User-Role Summary" 
view="/filterRoles.xhtml"/>
  |                     
  |             
  |         </h:form>  
  |     
  |     </rich:panel>
  |     
  |     
  | </ui:define> 
  | </ui:composition>

SFSB:

package com.cox.beans.session;
  | 
  | import java.sql.CallableStatement;
  | import java.sql.Connection;
  | import java.sql.DriverManager;
  | import java.sql.ResultSet;
  | import java.sql.SQLException;
  | import java.util.ArrayList;
  | import java.util.HashMap;
  | import java.util.List;
  | 
  | import javax.ejb.Remove;
  | import javax.ejb.Stateful;
  | import javax.faces.context.FacesContext;
  | import javax.faces.event.ValueChangeEvent;
  | 
  | import org.apache.log4j.Logger;
  | import org.jboss.seam.annotations.Destroy;
  | import org.jboss.seam.annotations.In;
  | import org.jboss.seam.annotations.Name;
  | 
  | @Stateful
  | @Name("userRoleSearch")
  | public class UserRoleSearchSFSB implements UserRoleSearchSFSBLocal {
  |     
  |     private String searchStringFirstName = "";
  |     private String searchStringLastName = "";
  |     private String currentUserId = "";
  |     private boolean isDisplay = false; 
  |     
  |     private ResultSet rs = null;
  |     private CallableStatement cstmt = null;
  |     private Connection con = null;
  |     private HashMap<String, String> hm = null;
  |     private HashMap<String, String> hm2 = null;
  |     
  |     Logger log = Logger.getLogger(this.getClass());
  |     
  |     int rowCount = 0;
  |     
  |     public void getUsers() {
  |                                                             
  |             log.info("getUsers(): searchStringFirstName = " + 
searchStringFirstName);
  |             log.info("getUsers(): searchStringLastName = " + 
searchStringLastName);
  |                             
  |             try {
  |                     String url = 
"jdbc:sqlserver://CORG0DV01:1433;databaseName=JavaTestDB";
  |                     con = DriverManager.getConnection(url, 
"_AppUser_JavaTestAcct", "JavaTestAcct");
  |                     cstmt = con.prepareCall("{call 
usp_u_adm_select_UserList(?, ?)}");
  |                     cstmt.setString(1, searchStringFirstName);
  |                     cstmt.setString(2, searchStringLastName);
  |                     rs = cstmt.executeQuery();
  |                                             
  |                     log.info("rs.next() = " + rs.next());
  |                     
  |                     hm = new HashMap<String, String>();
  |                     
  |                     while(rs.next()) {
  |                             hm.put(rs.getString("UserID"), 
rs.getString("Name"));
  |                             
  |                             String name = rs.getString("Name");
  |                             log.info("getUsers(): name = " + name);
  | 
  |                             String UserID = rs.getString("UserID");
  |                             log.info("getUsers(): UserID = " + UserID);
  |                             
  |                             rowCount++;
  |                     }
  |                     log.debug("in getUsers: rowCount = " + rowCount);
  |                     
  |             }
  |             catch(Exception e) {
  |                     e.printStackTrace();                    
  |             }
  |             finally {
  |                     this.cleanUp();
  |             }
  |             
  |             //search button clicked so set isDisplay to false so <div> in 
adminUserRoles.xhtml can check for display purposes
  |             isDisplay = true;
  |             
  |             
  |             
  |     }
  |     
  |     public HashMap getPopulateUsers() {
  |                             
  |             log.info("getPopulateUsers(): searchStringFirstName = " + 
searchStringFirstName);
  |             log.info("getPopulateUsers(): searchStringLastName = " + 
searchStringLastName);
  |             
  |             try {
  |                     
  |                     String url = 
"jdbc:sqlserver://CORG0DV01:1433;databaseName=JavaTestDB";
  |                     Connection con = DriverManager.getConnection(url, 
"_AppUser_JavaTestAcct", "JavaTestAcct");
  |                     
  |                     if (con == null) {
  |                             log.debug("con is null");
  |                     }
  |                     
  |                     cstmt = con.prepareCall("{call 
usp_u_adm_select_UserList(?, ?)}");
  |                     cstmt.setString(1, searchStringFirstName);
  |                     cstmt.setString(2, searchStringLastName);
  |                     rs = cstmt.executeQuery();
  |                     
  |                     log.debug("rs.getRow() = " + rs.getRow());
  |                     
  |                     hm = new HashMap<String, String>();
  |                     
  |                     while(rs.next()) {
  |                             hm.put(rs.getString("Name"), 
rs.getString("UserID"));
  |                             
  |                             String name = rs.getString("Name");
  |                             log.info("getPopulateUsers(): name = " + name);
  | 
  |                             String UserID = rs.getString("UserID");
  |                             log.info("getPopulateUsers(): UserID = " + 
UserID);
  |                                                             
  |                     }
  |                     
  |             }
  |             catch(Exception e) {
  |                     e.printStackTrace();                    
  |             }
  |             finally {
  |                     this.cleanUp();                 
  |             }
  |             
  |             return hm;
  |             
  |     }
  |     
  |     public HashMap getUserRoles() {
  |                                             
  |             log.info("in getUserRoles()");
  |                             
  |             if(hm2==null) {
  |                     log.info("damn thing is null");
  |             }
  |             return hm2;
  |                                             
  |     }
  |             
  |     public void processValueChange(ValueChangeEvent value) {
  |             log.info("begin processValueChange()");
  |             
  |             currentUserId = (String)value.getNewValue();
  |             log.info("processValueChange(): currentUserId = " + 
currentUserId);
  |             
  |             try {
  |                     
  |                     String url = 
"jdbc:sqlserver://CORG0DV01:1433;databaseName=JavaTestDB";
  |                     Connection con = DriverManager.getConnection(url, 
"_AppUser_JavaTestAcct", "JavaTestAcct");
  |                     
  |                     cstmt = con.prepareCall("{call 
usp_u_adm_select_UserRole(?)}");
  |                     cstmt.setString(1, currentUserId);                      
  |                     rs = cstmt.executeQuery();
  |                     
  |                     hm2 = new HashMap<String, String>();
  |                     
  |                     while(rs.next()) {
  |                             hm2.put(rs.getString("Name"), 
rs.getString("IsChecked"));
  |                             
  |                             String name = rs.getString("Name");
  |                             log.info("getUserRoles(): name = " + name);
  | 
  |                             String isChecked = rs.getString("IsChecked");
  |                             log.info("getUserRoles(): IsChecked = " + 
isChecked);
  |                                                             
  |                     }
  |                     
  |                     log.info("processValueChange(): rowCount = " + 
rowCount);
  |                     
  |             }
  |             catch(Exception e) {
  |                     e.printStackTrace();                    
  |             }
  |             finally {
  |                     this.cleanUp();
  |             }
  |             
  | 
  |     }
  |     
  |     
  |     public String getCurrentUserId() {
  |             log.info("in getCurrentUserId: currentUserId = " + 
currentUserId);
  |             return currentUserId;
  |     }
  |     
  |     public void setCurrentUserId(String currentUserId) {
  |             log.info("in setCurrentUserId: currentUserId = " + 
currentUserId);
  |             this.currentUserId = currentUserId;
  |     }
  |     
  |     public String getSearchStringFirstName() {
  |           return searchStringFirstName;
  |     }
  |        
  |     public void setSearchStringFirstName(String searchStringFirstName) {  
  |             log.info("in setSearchStringFirstName");
  |       this.searchStringFirstName = searchStringFirstName;
  |     }
  |     
  |     public String getSearchStringLastName() {
  |             return searchStringLastName;
  |     }
  |     
  |     public void setSearchStringLastName(String searchStringLastName) {
  |             log.info("in setSearchStringLastName");
  |             this.searchStringLastName = searchStringLastName;
  |     }
  |     
  |     public boolean getIsDisplay() {
  |             log.info("in getIsDisplay: isDisplay = " + this.isDisplay);     
        
  |             return this.isDisplay;
  |     }
  |     
  |     public int getRowCount() {
  |             log.info("in getRowCount: rowCount = " + rowCount);
  |             
  |             return rowCount;
  |     }
  |     
  |     private void cleanUp() {
  |             try {
  |                     if (rs != null) rs.close();
  |                     if (cstmt != null) cstmt.close();
  |                     if (con != null) con.close();
  |             }
  |             catch(SQLException e) {
  |                     e.printStackTrace();
  |             }
  |     }
  |     
  |     
  |     @Remove @Destroy
  |     public void destroy() {
  |             log.info("destroy() called");
  |     }
  |     
  | 
  | }

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

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

Reply via email to