jsonConfig用法
1.先编写jsonConfig的初始化代码 private JsonConfig jsonConfig; public action构造方法() { jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(Date.class,newJsonValueProcessor() { private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss"); @Override public Object processObjectValue(String key,Object value,JsonConfig jsonConfig) { return this.process(value); } @Override public Object processArrayValue(Object value,JsonConfig arg1) { return this.process(value); } // 处理Date类型返回的Json数值 private Object process(Object value) { if (value == null) { return ""; } else if (value instanceof Date) return sdf.format((Date)value); else { return value.toString(); } } }); // 不该传给前台的字段 jsonConfig.setJsonPropertyFilter(new PropertyFilter() { public boolean apply(Objectsource,String name,Object value) { if (source instanceof RaffleLog) { if ("contact".equals(name)) { return true; } } return false; } }); } /** * @param response * @param returnType * @throws IOException */ private voidprintReturnType2Response(HttpServletResponse response,ReturnType<?>returnType) throws IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("application/json;charset=utf-8"); response.getWriter().print(JSONObject.fromObject(returnType,jsonConfig)); } 2.再在需要跳转的action方法中编写相应的返回代码 ReturnType<Map<String,Integer>> returnType = newReturnType<Map<String,Integer>>(); if(条件){ returnType.setStatus(ReturnType.Status.SUCCESS.getValue()); }else{ returnType.setStatus(ReturnType.Status.FAIL.getValue()); } returnType.setMsg(sb.toString()); this.printReturnType2Response(response,returnType); 3.一个案例分析: /** * * @Title:DocInfoCustomAction.java * @Copyright:Copyright (c) 2005 * @Description:<br> * @Created on 2014-4-16 上午9:22:25 * @author 杨凯 */ public class DocInfoCustomAction extends DispatchAction{ private finalInteger pageSize = 15; // 每页显示页数 Logger logger= Logger.getLogger(DocInfoCustomAction.class); privateJsonConfig jsonConfig; publicDocInfoCustomAction() { jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(Date.class,new JsonValueProcessor() { private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss"); @Override public Object processObjectValue(String key,JsonConfigjsonConfig) { return this.process(value); } @Override public Object processArrayValue(Object value,JsonConfig arg1) { return this.process(value); } // 处理Date类型返回的Json数值 private Object process(Object value) { if (value == null) { return ""; }else if (value instanceof Date) return sdf.format((Date) value); else { return value.toString(); } } }); // 不该传给前台的字段 jsonConfig.setJsonPropertyFilter(new PropertyFilter() { public boolean apply(Object source,Object value) { if (source instanceof RaffleLog) { if ("contact".equals(name)) { return true; } } return false; } }); } /** * @paramresponse * @paramreturnType * @throwsIOException */ private voidprintReturnType2Response(HttpServletResponse response,ReturnType<?>returnType) throws IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("application/json;charset=utf-8"); response.getWriter().print(JSONObject.fromObject(returnType,jsonConfig)); } /** * 批量删除操作 * * @parammapping * @paramform * @paramrequest * @paramresponse * @return * @throwsIOException * @throwsAppException */ publicActionForward delete(ActionMapping mapping,ActionForm form,HttpServletRequestrequest,HttpServletResponse response) throws IOException,AppException { Stringids = Tool.getDefaultValue(request,"ids",""); // 获取下拉列表的值 StringBuffer sb = new StringBuffer(); ReturnType<Map<String,Integer>> returnType = newReturnType<Map<String,Integer>>(); if (ids!= null && !("").equals(ids)) { try { String[] idds = ids.split(","); for (String id : idds) { int flag = DocInfoTempletApi.deleteDocInfoCustom(id); sb.append("ID为:" + id); if (flag == 1) { sb.append(" 的记录删除成功!"); } else { sb.append(" 的记录删除失败!"); } sb.append("rn"); } }catch (Exception e) { logger.debug("DocInfoCustomAction.delete():" + e); } returnType.setStatus(ReturnType.Status.SUCCESS.getValue()); } else { sb.append("条件id不能为空"); returnType.setStatus(ReturnType.Status.FAIL.getValue()); } returnType.setMsg(sb.toString()); this.printReturnType2Response(response,returnType); returnnull; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |