页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>grid.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3" /> <meta http-equiv="description" content="this is my page" /> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" type="text/css" media="screen" href="css/themes/redmond/jquery-ui-1.8.2.custom.css" /> <link rel="stylesheet" type="text/css" media="screen" href="css/themes/ui.jqgrid.css" /> <link rel="stylesheet" type="text/css" media="screen" href="css/themes/ui.multiselect.css" /> <link rel="stylesheet" type="text/css" media="screen" href="css/themes/jquery.searchFilter.css" /> <style> html,body { --margin: 0; /* Remove body margin/padding */ padding: 0; overflow: hidden; /* Remove scroll bars on browser window */ font-size: 75%; } </style> <script src="js/jquery-1.4.2.min.js" type="text/javascript"></script> <script src="js/jquery-ui-1.8.2.custom.min.js" type="text/javascript"></script> <script src="js/src/ui.multiselect.js" type="text/javascript"></script> <script src="js/src/grid.loader.js" type="text/javascript"></script> <script type="text/javascript"> $.jgrid.no_legacy_api = true; $.jgrid.useJSON = true; </script> <script type="text/javascript"> $(function(){ $("#grid_id").jqGrid({ url:'/demo2/servlet/JqGridJsonServlet', mtype: 'GET', datatype: 'json', jsonReader : { repeatitems: false }, height: "auto", loadui: "disable", colNames:['Inv No','Date', 'Amount','Tax','Total','Notes'], colModel :[ {name:'invId', index:'invId', width:70}, {name:'invDate', index:'invDate', width:120, editable:true}, {name:'amount', index:'amount', width:90, align:'right', editable:true}, {name:'tax', index:'tax', width:90, align:'right', editable:true}, {name:'total', index:'total', width:90, align:'right', editable:true}, {name:'note', index:'note', width:180, sortable:false, editable:true} ], pager: '#pager', rowNum:10, rowList:[10,20,30], sortname: 'invid', sortorder: 'asc', viewrecords: true, caption: 'My first grid' }); }); </script> </head> <body> <table id="grid_id"></table> <div id="pager"></div> </body> </html>
servlet
package com.qoma.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import com.et.ar.exception.ActiveRecordException; import com.qoma.db.vo.InvHeader; import com.qoma.service.InvHeaderService; import com.qoma.util.Json; public class JqGridJsonServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1676458940650461673L; private InvHeaderService service = new InvHeaderService(); /** * Constructor of the object. */ public JqGridJsonServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to * post. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String oper = request.getParameter("oper"); String s = ""; if (null == oper || "".equals(oper)) { Integer page = Integer.parseInt(request.getParameter("page")); Integer limit = Integer.parseInt(request.getParameter("rows")); String sidx = request.getParameter("sidx"); String sord = request.getParameter("sord"); if (null == sidx || "".equals(sidx)) sidx = "1"; Long count = 0L; try { count = service.getCount(); } catch (ActiveRecordException e) { e.printStackTrace(); } Integer totalPages = 0; if (count > 0 && limit > 0) { totalPages = new Long(count / limit).intValue(); if (count % limit != 0) { totalPages += 1; } } else { totalPages = 0; } // if for some reasons the requested page is greater than the total // set the requested page to total page if (page > totalPages) page = totalPages; // calculate the starting position of the rows Integer start = limit * page - limit; if (start < 0) start = 0; try { List<InvHeader> list = service.getLimitList(start, limit, sidx, sord); s = service.getAllJson(page, totalPages, count, list); } catch (ActiveRecordException e) { e.printStackTrace(); s = Json.FAILURE; } } else { String idValue = request.getParameter("id"); Integer invId = (StringUtils.isEmpty(idValue) || "_empty".equals(idValue)) ? 0 : Integer.parseInt(idValue);// add操作时,id值默认为_empty InvHeader vo = new InvHeader(); vo.invId = invId; if ("del".equals(oper)) { try { service.deleteInvHeader(vo); s = Json.SUCCESS; } catch (ActiveRecordException e) { e.printStackTrace(); s = Json.getFailure(e.getMessage()); } } else { String invDateValue = request.getParameter("invDate"); String clientIdValue = request.getParameter("client_Id"); String amountValue = request.getParameter("amount"); String taxValue = request.getParameter("tax"); String totalValue = request.getParameter("total"); String noteValue = request.getParameter("note"); vo.invDate = invDateValue; vo.client_Id = StringUtils.isEmpty(clientIdValue) ? 0 : Integer.parseInt(clientIdValue); vo.amount = StringUtils.isEmpty(amountValue) ? 0 : Float.parseFloat(amountValue); vo.tax = StringUtils.isEmpty(taxValue) ? 0 : Float.parseFloat(taxValue); vo.total = StringUtils.isEmpty(totalValue) ? 0 : Float.parseFloat(totalValue); vo.note = noteValue; if ("add".equals(oper)) { try { if (service.addInvHeader(vo)) { s = Json.SUCCESS; } else { s = Json.FAILURE; } } catch (ActiveRecordException e) { e.printStackTrace(); s = Json.getFailure(e.getMessage()); } } else if ("edit".equals(oper)) { try { if (service.updateInvHeader(vo)) { s = Json.SUCCESS; } else { s = Json.FAILURE; } } catch (ActiveRecordException e) { e.printStackTrace(); s = Json.getFailure(e.getMessage()); } } } } out.println(s); out.flush(); out.close(); } /** * Initialization of the servlet. <br> * * @throws ServletException * if an error occurs */ public void init() throws ServletException { // Put your code here } }