StringBuffer sb = new StringBuffer();
sb.append(TagConstant.SCRIPT_START);
Dto dto = new BaseDto();
dto.put("showCode", showCode.toLowerCase());
String[] arrayFields = fields.split(",");
TemplateEngine engine = TemplateEngineFactory.getTemplateEngine(TemplateType.VELOCITY);
DefaultTemplate template = new FileTemplate();
template.setTemplateResource(TagHelper.getTemplatePath(getClass().getName()));
for (int i = 0; i < arrayFields.length; i++) {
if (arrayFields[i].indexOf(":") != -1) {
String field = arrayFields[i].substring(0, arrayFields[i].indexOf(":"));
dto.put("field", field);
List codeList = WebUtils.getCodeListByField(field, request);
String filter = arrayFields[i].substring(arrayFields[i].indexOf(":") + 1);
String filters[] = filter.split("!");
List okList = new ArrayList();
for (int j = 0; j < codeList.size(); j++) {
Dto codeDto = (BaseDto) codeList.get(j);
boolean flag = true;
for (int k = 0; k < filters.length; k++) {
if (codeDto.getAsString("code").equalsIgnoreCase(filters[k])) {
flag = false;
}
}
if (flag) {
okList.add(codeDto);
}
}
dto.put("codeList", okList);
} else {
List codeList = WebUtils.getCodeListByField(arrayFields[i], request);
dto.put("field", arrayFields[i]);
dto.put("codeList", codeList);
}
StringWriter writer = engine.mergeTemplate(template, dto);
sb.append(writer.toString());
}
sb.append(TagConstant.SCRIPT_END);
try {
pageContext.getOut().write(sb.toString());