public ModelAndView query(HttpServletRequest request, HttpServletResponse response) { ModelAndView mv = new ModelAndView(); int curPage = ServletRequestUtils.getIntParameter(request, "curPage", 0); int pageSize = ServletRequestUtils.getIntParameter(request, "pageSize", 100); if (pageSize > 10000) { throw new RuntimeException("max pageSize can not be more than 10000"); } PageBean pageBean = null; if (curPage != 0) { pageBean = new PageBean(curPage, pageSize); } String errorMsg = ""; final SearchParam searchParam = new SearchParam(); try { request.setCharacterEncoding("utf-8"); String tableName = request.getParameter("table"); String select = request.getParameter("select"); String where = request.getParameter("where"); String keys = request.getParameter("keys"); String startKey = request.getParameter("startKey"); String endKey = request.getParameter("endKey"); String family = request.getParameter("family"); String hbaseFilter = request.getParameter("hbaseFilter"); if (startKey == null) startKey = ""; if (endKey == null) endKey = ""; String tenantId = request.getParameter("tenantId"); if (startKey != null && startKey.contains("$")) { if (tenantId != null) { String[] tenantIdArray = tenantId.split(","); startKey = startKey.replaceFirst(REGEX, tenantIdArray[0]); } } if (endKey != null && endKey.contains("$")) { if (tenantId != null) { String[] tenantIdArray = tenantId.split(","); endKey = endKey.replaceFirst(REGEX, tenantIdArray[0]) + "_z"; } } searchParam.setTableName(tableName); searchParam.setFamily(family); searchParam.setStartKey(startKey); searchParam.setEndKey(endKey); searchParam.setKeys(keys); searchParam.setWhere(where); searchParam.setHbaseFilter(hbaseFilter); searchParam.setSelect(select); } catch (Exception e) { logger.error(e.getMessage(), e); errorMsg += e.getMessage(); } try { pageBean = getDataMapTemp(searchParam, curPage, pageSize); } catch (IOException e) { errorMsg += e.getMessage(); } @SuppressWarnings("unchecked") List<Map<String, String>> rows = pageBean.getResults(); List<String> titleList = new ArrayList<String>(); if (null != rows && rows.size() > 0) { for (Iterator<String> iter = rows.get(0).keySet().iterator(); iter.hasNext(); ) { String next = iter.next(); if ("_id".equals(next)) { titleList.add(0, next); } else { titleList.add(next); } } } DataSource dataSource = new DataSource(); dataSource.setRows(pageBean.getResults()); dataSource.setPage(pageBean.getCurrentPage()); dataSource.setTotal(pageBean.getTotalRecords()); dataSource.setRecords(pageBean.getLength()); dataSource.setStatus("success"); mv.addObject("status", errorMsg); mv.addObject("rows", rows); mv.addObject("keyList", titleList); mv.addObject("result", dataSource); return mv; }