package com.fitbank.web; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import com.fitbank.dto.management.Detail; import com.fitbank.dto.management.Field; import com.fitbank.dto.management.Record; import com.fitbank.dto.management.Table; public class JSONData { // private static final String QUERY_CTL="__QUERY"; // private static final String TABLE_CTL="__TABLE"; // private static final String ID_CTL="__ID"; @SuppressWarnings("unused") private HttpServletRequest request; //private Map param; private String identifier="code"; private Detail detail; private String query; private String table="lov"; private Map parameters = new HashMap(); @SuppressWarnings("unchecked") public JSONData(HttpServletRequest pRequest) throws Exception { request = pRequest; query=request.getParameter("_query"); identifier=request.getParameter("_identifier"); // param=new HashMap(); Enumeration param = request.getParameterNames(); while (param.hasMoreElements()) { String paramName = param.nextElement(); if (paramName.indexOf("cLov_") < 0&¶mName.indexOf("pLov_") < 0) { continue; } String val = request.getParameter(paramName).trim(); if (val.compareTo("_") == 0) { val = ""; } paramName = paramName.replaceAll("cLov_", ""); paramName = paramName.replaceAll("pLov_", ""); parameters.put(paramName, val); } DataManage dm = (DataManage) request.getSession().getAttribute(DataManage.KEY); detail = new Detail(); detail.setType(MessageTypes.CON.name()); detail.setSubsystem("03"); detail.setTransaction("7003"); detail.setVersion("01"); dm.prepareHeaderData(detail,this.request); detail.findFieldByNameCreate("NAME").setValue(query); for (String key : this.parameters.keySet()) { detail.findFieldByNameCreate(key).setValue(this.parameters.get(key)); } BussinessDelegate bd=new BussinessDelegate(); this.detail=bd.process(detail); } public JSONData(MappParam){ } @SuppressWarnings("unchecked") public String getJsonData() throws Exception { Table lov= detail.findTableByAlias(table); return this.formatData(lov.getRecords()); } private String formatData(Iterable pData){ String data="{identifier:\""+identifier+"\","; data+="items: ["; boolean first=true; for (Record record : pData) { if(first){ first=false; }else{ data+=","; } data+="{"; data+=this.record2Jason(record); data+="}"; } return data+"]}"; } private String record2Jason(Record pRecord){ String data=""; boolean first=true; for(String key:pRecord.keySet()){ if(first){ first=false; }else{ data+=","; } data+=key+":\""+((Field)pRecord.get(key)).getValue()+"\""; } return data; } }