Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java h:dataTable没有值_Java_Jsf - Fatal编程技术网

Java h:dataTable没有值

Java h:dataTable没有值,java,jsf,Java,Jsf,嗨, 已使用JSF h:data Table-JSF datatable为空,my sp返回值,因此getList返回值,但在浏览器中只看到标题,在浏览器中看不到表值 以下是我的JSP 我的豆子 公共类DataTableBean{ private List<BillTransPay> list; public List<BillTransPay> getList() { String SP_BILLPAY = "{call sp_aw_BillTrans

嗨, 已使用JSF h:data Table-JSF datatable为空,my sp返回值,因此getList返回值,但在浏览器中只看到标题,在浏览器中看不到表值

以下是我的JSP


我的豆子

公共类DataTableBean{

private List<BillTransPay> list;

public List<BillTransPay> getList() {
    String SP_BILLPAY = "{call sp_aw_BillTransPay(?,?,?,?,?,?,?)}";
    Connection con = null;
    ResultSet rs = null;
    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                    con = java.sql.DriverManager
                .getConnection(conString);
        CallableStatement cbls = con
                .prepareCall("{call sp_aw_BillTransPay(?,?,?,?,?,?,?)}");

        cbls.setString(1, "csf");
        cbls.setString(2, "20100101");
        cbls.setString(3, "20100301");
        cbls.setString(4, "B");
        cbls.setString(5, "01CS");
        cbls.setString(6, "ALL");
        cbls.setInt(7, 14000);
        rs = cbls.executeQuery();
        list = new ArrayList<BillTransPay>();
        while (rs.next()) {
            BillTransPay btp = new BillTransPay();
            btp.setSponsorID(rs.getString("SponsorCode"));
            btp.setSponsorName(rs.getString("SponsorName"));
            btp.setDistributorID(rs.getString("DistID"));
            btp.setDistributorName(rs.getString("DistName"));
            list.add(btp);

        }

    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return list;
}

public void setList(List<BillTransPay> list) {
    this.list = list;
}
私有列表;
公共列表getList(){
字符串SP_BILLPAY=“{调用SP_aw_BillTransPay(?,,,,,,,,,?,,,,?)}”;
连接con=null;
结果集rs=null;
试一试{
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
con=java.sql.DriverManager
.连接(施工);
CallableStatement cbls=con
.prepareCall({调用sp_aw_BillTransPay(?,,,,,,,,,,,?)});
cbls.设置字符串(1,“csf”);
cbls.setString(2,“20100101”);
cbls.设置字符串(3,“20100301”);
cbls.设置字符串(4,“B”);
cbls.固定管柱(5,“01CS”);
cbls.集合字符串(6,“全部”);
cbls.setInt(714000);
rs=cbls.executeQuery();
列表=新的ArrayList();
while(rs.next()){
BillTransPay btp=新BillTransPay();
btp.setponsorid(rs.getString(“赞助商代码”);
btp.setponsorname(rs.getString(“赞助商名称”);
btp.setDistributorID(rs.getString(“DistID”);
btp.setDistributorName(rs.getString(“DistName”));
添加列表(btp);
}
}捕获(例外情况除外){
例如printStackTrace();
}
退货清单;
}
公共无效集合列表(列表){
this.list=列表;
}
}

Faces Config.xml

    **<managed-bean>
    <managed-bean-name>dataTableBean</managed-bean-name>
    <managed-bean-class>
        com.SQLProcess.dto.DataTableBean
    </managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
</managed-bean>**
**
dataTableBean
com.SQLProcess.dto.DataTableBean
要求
**

只需运行一个调试器或添加一个
System.out.println(列表)返回列表的右前<代码>返回列表
查看是否调用了该方法,并且列表中确实包含项


他说,这项昂贵的数据库工作真的不应该在一个getter中完成。在请求过程中可以多次调用它。您不想不必要地打击/强调数据库。将DB作业移动到bean的构造函数中。此外,您没有显式关闭
连接
语句
结果集
,因此正在泄漏数据库资源。您需要在
最后
块中关闭它们,该
块与您获取它们的位置相同。

代码似乎可以。什么是HTML?你真的在使用
List
传递什么吗?只传递头,但是sp返回值。在XHTML上尝试
getList
,或者说
retrieveData
并重构方法名如果我尝试getList-我得到以下错误javax.servlet.ServletException:/JSP/dataTableDemo.JSP(15,3)'#{dataTableBean.getList}'在类型com.SQLProcess.dto.dataTableBean javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)上找不到属性'getList',我将尝试从getter方法中删除数据获取(将其放入构造函数中,因为它是请求范围的bean)。让getter只返回构造函数填写的列表。谢谢大家,sqldriver版本有问题-并且知道为什么我会出现任何错误,页面被访问。但是一旦放置了Corect驱动程序,错误就消失了。谢谢大家:D
    **<managed-bean>
    <managed-bean-name>dataTableBean</managed-bean-name>
    <managed-bean-class>
        com.SQLProcess.dto.DataTableBean
    </managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
</managed-bean>**