因为前面是查询全部 没问题 但是现在加了时间条件查询 我只要查询数据库没有的空记录后
我再查数据库有的 或者全部的记录后台都可以查出来 但是datagrid不会显示 并且后台
还会报错 数组越界
我后台是用的List集合传的值,后台代码:
public List Query(String queryTime) {
String hql = "";
List list = new ArrayList();
if(queryTime.equals("")||queryTime==null){
hql="from Gasorder2";
}else{
hql="from Gasorder2 where buyGasTime like '%"+queryTime+"%'";
}
try {
Query query = session.createQuery(hql);
list = query.list();
} catch (Exception e) {
e.printStackTrace();
}finally{
session.close();
}
return list;
}
datagrid数据:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<%@ page import="Model.Gasorder2" %>
<%@ page import="dao.select" %>
<%@ page import="idao.iselect" %>
<%
String queryTime= request.getParameter("data").trim();
System.out.println("queryTime:"+queryTime);
//List<Object[]> list = new ArrayList<Object[]>();
List<Gasorder2> list = new ArrayList<Gasorder2>();
iselect dao = new select();
list = dao.Query(queryTime);
//获取客户端传递的分页参数
Integer pageSize = Integer.parseInt(request.getParameter("rows"));
//默认参数rows表示每页显示记录数
Integer pageNumber = Integer.parseInt(request.getParameter("page"));
//默认参数page表示当前页数
StringBuilder builder = new StringBuilder("{\"total\":"+list.size()+",\"rows\":[");
//计算分页开始记录数
int start = (pageNumber-1)*pageSize;
//计算分页结束记录数
int end = start+pageSize;
//根据分页起始参数构建当前页的列表数据
for(int i=start;i<end && i<list.size();i++){
System.out.println("数组大小:"+list.size());
Gasorder2 gn = list.get(i);
//System.out.println(gn.getBuyerAddress()+"~~~~~~"+i);
String buyGasStatus = "";
if(gn.getStatus().equals(11)){
buyGasStatus = "写卡成功";
}else{
buyGasStatus = gn.getStatus().toString();
}
builder.append("{\"terminalName\":\""+gn.getTerminalName()
+"\",\"terminalId\":\""+gn.getTerminalId()
+"\",\"buyGasVolume\":\""+gn.getBuyGasVolume()
+"\",\"buyGasMoney\":\""+gn.getBuyGasMoney()
+"\",\"buyGasTime\":\""+gn.getBuyGasTime()
+"\",\"takePayMsg\":\""+gn.getTakePayMsg()
+"\",\"buyerAddress\":\""+gn.getBuyerAddress()
+"\",\"buyerName\":\""+gn.getBuyerName()
+"\",\"priceName\":\""+gn.getPriceName()
+"\",\"status\":\""+buyGasStatus
+"\",\"userCode\":\""+gn.getUserCode()
+"\",\"watchManufacturer\":\""+gn.getWatchManufacturer()
+"\",\"flowId\":\""+gn.getFlowId()
+"\"},");
}
list.clear();
String gridJSON = builder.toString();
if(gridJSON.endsWith(",")){
gridJSON = gridJSON.substring(0,gridJSON.lastIndexOf(","));
}
out.print(gridJSON.toString()+"]}");
System.out.println(gridJSON.toString()+"]}");
%>
第一次查询 我输入条件 可以正常显示数据 第二次查询 输入正确的添加也没问题 但是我只要 输入错的条件或空条件查询就会报错:
2017-6-28 18:40:45 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [jsp] in context with path [/changjiGas] threw exception [java.lang.ArrayIndexOutOfBoundsException] with root cause
java.lang.ArrayIndexOutOfBoundsException
报错以后我就算输入正确的查询条件 后台可以查询出数据 但是datagrid前台就不会显示