各位大侠,帮帮忙看看!我的ValueListener不起作用
<ice:form> <ice:panelGroup > <ice:selectOneMenu id="database" partialSubmit="true" value="#{dataBaseAdmin.selectValue}" οnfοcus="this.name='database'" style="width:120px" οnchange="submit();" valueChangeListener="#{dataBaseAdmin.updatePage}" > <f:selectItem itemLabel="请选择表名" itemValue=""/> <f:selectItems value="#{dataBaseAdmin.dataBaseTables}" /> </ice:selectOneMenu> </ice:panelGroup> <ice:panelSeries var="columns" value="#{dataBaseAdmin.columnsName}" style="float:left;width:30px;"> <ice:outputText value="#{columns}"/> </ice:panelSeries> <ice:outputText value="#{dataBaseAdmin.testingstring}" ></ice:outputText> </ice:form>
上面是xhtml里面的 selectOneMenu 在change的时候调用DataBaseAdmin里面的updatePage Listener
DataBaseAdmin.java
package org.openi.web.ui.jsf.bean.admin;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import org.openi.web.ui.jsf.service.search.SearchInfoDao;
public class DataBaseAdmin {
SearchInfoDao sid;
DatabaseMetaData rsmt = null;
List dataModel = null;
String[] columnsName;
String testingstring = "123";
String selectValue = "";
public DataBaseAdmin () {
System.out.println("Initialized");
}
// public void getConnectioned() {
// try {
// Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
// System.out.println("connect successful");
// } catch (InstantiationException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (IllegalAccessException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (ClassNotFoundException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
//
// public void setSid(SearchInfoDao sid) {
// this.sid = sid;
// }
public String getTestingstring() {
return testingstring;
}
public String getSelectValue() {
return selectValue;
}
public void setSelectValue(String selectValue) {
this.selectValue = selectValue;
}
public void setTestingstring(String testingstring) {
this.testingstring = testingstring;
}
public void setSid(SearchInfoDao sid) {
this.sid = sid;
}
/**
* Comments:
* @author Jacky
* Chinese : 返回所有dim开头的table
* @return
*/
@SuppressWarnings("unchecked")
public SelectItem[] getDataBaseTables() {
String sql = "select t.TABLE_NAME name,t.COMMENTS comments from MGR_TABLE_COMMENTS t where t.TABLE_NAME like '%'||'DIM'||'%'";
List<Map<String,String>> list = sid.getCllx(sql);
SelectItem[] select = new SelectItem[list.size()] ;
for(int i=0;i<list.size();i++) {
select[i] = new SelectItem((String)(list.get(i)).get("name"),(String)(list.get(i)).get("comments"));
}
return select;
}
// try {
// rsmt = (sid.getDataSource().getConnection()).getMetaData();
// ResultSet rs=rsmt.getTables(null, null, "DIM%", new String[]{"TABLE"});
// while (rs.next()) {
// System.out.println(rs.getString(3));
// }
//
//} catch (SQLException e) {
// e.printStackTrace();
//}
//
// public void test() {
// getConnectioned();
// try {
// ResultSet rs = null;
// Connection con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.9.172:1521:yfzx","zhfxyp","zhfxyp");
// PreparedStatement pstmt = con.prepareStatement("select table_name from user_tables t where t.table_name like '%'||'DIM'||'%'");
// rs = pstmt.executeQuery();
// while (rs.next()) {
// System.out.println(rs.getString(1));
// }
// } catch (SQLException e) {
// e.printStackTrace();
// }
// try {
// Connection con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.9.172:1521:yfzx","zhfxyp","zhfxyp");
// rsmt = con.getMetaData();
// ResultSet rs=rsmt.getColumns(null, null, "DIM_WF_DSR", null);
// while (rs.next()) {
// System.out.println(rs.getString(4));
// }
// } catch (SQLException e) {
// e.printStackTrace();
// }
// }
//
// public static void main(String[] args) {
// DataBaseAdmin db = new DataBaseAdmin();
// db.test();
// }
public void updatePage(ValueChangeEvent e){
System.out.println("======");
this.setTestingstring("234");
// String table = this.getParameter("database");
// ResultSet rs = null;
// System.out.println("~~~~~~~~~~~"+columnsName.length);
// try {
// rsmt = (sid.getDataSource().getConnection()).getMetaData();
// rs = rsmt.getColumns(null, null, table, null);
// } catch (SQLException e1) {
// e1.printStackTrace();
// }
// StringBuilder s = new StringBuilder();
// if(rs!=null) {
// try {
// rs.last();
// columnsName = new String[rs.getRow()];
// rs.beforeFirst();
// int count = 0;
// while(rs.next()) {
// s.append(rs.getString(4)+",");
// columnsName[count++] =rs.getString(4) ;
// }
// System.out.println("~~~~~~~~~~~"+columnsName.length);
// } catch(SQLException e2) {
// e2.printStackTrace();
// }
// String sql = "select "+s.substring(0, s.lastIndexOf(",")) +" from "+table;
// dataModel = sid.getCllx(sql);
// if(rs!=null) {
// rs = null;
// try {
// rs.close();
// } catch (SQLException e1) {
// e1.printStackTrace();
// }
// }
// }
}
//get table data
public List getDataModel() {
return dataModel;
}
public String getParameter(String param) {
if ((String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(param) !=null) {
return ((String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(param)).trim();
} else {
return null;
}
}
public String[] getColumnsName() {
return columnsName;
}
}
帮忙看看为什么我的Listener调用不了
后台没有打印“======”,按理说调用Listener的时候会调用
高手搞起啊。感谢了!
问题找到了。。。是ice:selectOneMenu的为问题,改成h:selectOneMenu就好了。。。悲催