Front-end:
// Remotely read the data var Store1 = new Ext. data. store ({proxy: {type: 'ajax ', url:'/newmaterial/servlet/GetCountChartGoDatas ', reader: {type: 'array'}, fields: ["System", {name: "Share", type: "float"}]}); Store1.load (); var mychart1 = new Ext. chart. chart ({store: Store1, title: 'Overview of all material whereabouts ', width: 500, height: 500, insetPadding: 50, legend: {position: "right"}, series: [{type: 'pie ', field: 'share', showInLegend: true, highlight: {segment: {margin: 20 }}, label: {field: 'system ', display: 'rotate', contrast: true}, tips: {trackMouse: true, renderer: function (rec, item) {this. update (rec. get ("System") + ':' + rec. get ("Share") + '%') ;}}]});
Background:
public class GetCountChartGoDatas extends HttpServlet {/** * @Fields serialVersionUID : */private static final long serialVersionUID = 1L;/** * The doGet method of the servlet.
* * 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 {request.setCharacterEncoding("utf-8");response.setContentType("text/html");StringBuffer sb = new StringBuffer();NowmaterialDAO nmd = new NowmaterialDAO();MaterialDAO md = new MaterialDAO();List getlist = nmd.getSession().createCriteria(Nowmaterial.class).setProjection(Projections.projectionList().add(Projections.rowCount()).add(Projections.groupProperty("material.msCode"))).list();int total = 0;for (int i = 0; i < getlist.size(); i++) {Object[] row = (Object[]) getlist.get(i);total = total + Integer.parseInt(row[0].toString());}response.setCharacterEncoding("utf-8");sb.append("[");for (int i = 0; i < getlist.size(); i++) {Object[] row = (Object[]) getlist.get(i);List
getonelist = md.findByProperty("msCode", row[1]);sb.append("['" + getonelist.get(0).getMsName() + "',"+ Float.parseFloat(row[0].toString()) + "],");}sb.append("]");int qu = sb.lastIndexOf(",");sb.deleteCharAt(qu);response.getWriter().print(sb.toString());}/** * The doPost method of the servlet.
* * 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 {doGet(request, response);}}