jQuery.bsgrid是一个轻量强大易用的jQuery Grid控件,支持json、xml数据格式,皮肤丰富并且容易定制,支持表格编辑、本地数据、导出参数构建等实用便捷的功能,容易扩展,更拥有丰富的示例以及问题反馈的及时响应。
Bsgrid功能的强大显而易见,那么在JAVA中该如何用bsgrid来绑定表格呢?
在JAVA中用bsgrid绑定表格首先需要把JSP页面的表格样式搭建好。th标签需要用上bsgrid定义好的表头标签。
<table id="INTab" style="width:100%">
<tr>
<th w_index="Pingzheng">凭证</th>
<th w_index="zhaiyao">摘要</th>
</tr>
</table>
JSP表格样式搭建好之后需要在JavaScript写表格的配置参数。配置参数可以从jQueryBsgrid的说明文档里找到相应的用法与解释。
var INmod;
$(function () {
INTab = $.fn.bsgrid.init('INTab', {
url:"${ctx}/servlet/DetailServlet?type=selectKemuContent",
autoLoad: true,
pageSizeSelect: true,
pageSize: 10,
stripeRows: true,
rowHoverColor: true,
pagingLittleToolbar: true,
displayBlankRows: false,
});
});
JSP总体写好之后就到Servlet层。Servlet层需要获取JSP传过来的首页参数,页面大小在bsgrid绑定的表格样式会有对应的下拉框控制,如果JSP没有定义首页参数就需要在Servlet层定义一个默认的值。接着连接JDBC获取返回数据与处理后将数据返回到JSP页面进行绑定。
protected void selectKemuContent(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int currentPage=1;
String currentPageStr=req.getParameter("curPage");
if (currentPageStr!=null) {currentPage=Integer.parseInt(currentPageStr);}
List<PZDetailVo> kemus = service.findKuMuDetail();
int totalRow=service.getTotalRow();
Bsgrid<PZDetailVo> bsgrid=new Bsgrid<PZDetailVo>();
bsgrid.setSuccess(true);
bsgrid.setCurPage(currentPage);
bsgrid.setTotalRows(totalRow);
bsgrid.setData(kemus);
JSONObject jsonObject=JSONObject.fromObject(bsgrid);
PrintWriter out=resp.getWriter();
out.write(jsonObject.toString());
out.flush();
out.close();
}
最后就到了JDBC层,在这里需要写两个方法,一个用于查询数据库获取数据,另一个用于获取数据条数。最后将查询到的数据返回到Servlet层进行处理后返回JSP。
public List<PZDetailVo> findKuMuDetail() {
List<PZDetailVo> list = new ArrayList<PZDetailVo>();
PZDetailVo detailVo = new PZDetailVo();
try {
con=DbUtil.getConnection();
ps=con.prepareStatement("SELECT Zhaiyao, Pingzheng FROM KuMu");
rs=ps.executeQuery();
while (rs.next()) {
detailVo.setZhaiyao(rs.getString("Zhaiyao"));
detailVo.setStrPingzhengriqi(rs.getString("Pingzheng"));
list.add(detailVo);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DbUtil.close(con, ps, rs);
}
return list;
}
public int getTotalRow() {
int intTotalRow=0;
try {
con=DbUtil.getConnection();
ps=con.prepareStatement("SELECT COUNT(*) FROM KuMu");
rs=ps.executeQuery();
while (rs.next()) {
intTotalRow=rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}
finally{
DbUtil.close(con, ps, rs);
}
return intTotalRow;
}