Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package net.nan21.dnet.core.web.controller.data;
  
  import java.io.File;
  import java.io.Writer;
  import java.util.Arrays;
  import java.util.Date;
  import java.util.HashMap;
  import java.util.List;
 import java.util.Map;
 
 import  javax.servlet.http.HttpServletRequest;
 import  javax.servlet.http.HttpServletResponse;
 
 
 import  org.apache.commons.io.FileUtils;
 import  org.apache.commons.lang.time.StopWatch;
 import  org.springframework.core.io.ClassPathResource;
 import  org.springframework.core.io.Resource;
 import  org.springframework.web.bind.annotation.PathVariable;
 import  org.springframework.web.bind.annotation.RequestMapping;
 import  org.springframework.web.bind.annotation.RequestMethod;
 import  org.springframework.web.bind.annotation.RequestParam;
 import  org.springframework.web.bind.annotation.ResponseBody;
 
 import  freemarker.template.Configuration;
 import  freemarker.template.ObjectWrapper;
 import  freemarker.template.Template;
 
 public class AbstractDsReadController<M, F, P> extends
 		AbstractDsController<M, F, P> {
 
 	private static final String DEFAULT_RESULT_START = "0";
 	private static final String DEFAULT_RESULT_SIZE = "500";
 
 	final static Logger logger = LoggerFactory
Default handler for find action.

Parameters:
resourceName
dataformat
dataString
paramString
resultStart
resultSize
orderByCol
orderBySense
orderBy
Returns:
Throws:
Exception
 
 	@RequestMapping(method = RequestMethod.POST, params = .
 			+ "=" + .)
 	@ResponseBody
 	public String find(
 			@PathVariable String resourceName,
 			@PathVariable String dataFormat,
 			@RequestParam(value = ., required = false, defaultValue = "{}"String filterString,
 			@RequestParam(value = ., required = false, defaultValue = ""String filterRulesString,
 			@RequestParam(value = ., required = false, defaultValue = "{}"String paramString,
 			@RequestParam(value = ., required = false, defaultValue = int resultStart,
 			@RequestParam(value = ., required = false, defaultValue = int resultSize,
 			@RequestParam(value = ., required = false, defaultValue = ""String orderByCol,
 			@RequestParam(value = ., required = false, defaultValue = ""String orderBySense,
 			@RequestParam(value = ., required = false, defaultValue = ""String orderBy,
 			HttpServletRequest request, HttpServletResponse response)
 			throws Exception {
 		try {
 
 			StopWatch stopWatch = new StopWatch();
 			stopWatch.start();
 
 			if (.isDebugEnabled()) {
 				.debug("Processing request: {}.{} -> action = {} ",
 						new String[] { resourceNamedataFormat,
 				.debug("  --> request-filter: {} ",
 						new String[] { filterString });
 				.debug("  --> request-params: {} ",
						new String[] { paramString });
				.debug("  --> request-result-range: {} "new String[] {
						resultStart + "", (resultStart + resultSize) + "" });
			}
			this.prepareRequest(requestresponse);
					resourceName.substring(0, resourceName.length() - 2),
			IDsService<M, F, P> service = this.findDsService(resourceName);
			IDsMarshaller<M, F, P> marshaller = service
					.createMarshaller(dataFormat);
filter = marshaller.readFilterFromString(filterString);
params = marshaller.readParamsFromString(paramString);
			IQueryBuilder<M, F, P> builder = service.createQueryBuilder()
					.addFetchLimit(resultStartresultSize).addFilter(filter)
					.addParams(params);
			if (orderBy != null && !orderBy.equals("")) {
				List<SortTokensortTokens = marshaller.readListFromString(
						orderBySortToken.class);
				builder.addSortInfo(sortTokens);
else {
				builder.addSortInfo(orderByColorderBySense);
			}
			if (filterRulesString != null && !filterRulesString.equals("")) {
				List<FilterRulefilterRules = marshaller.readListFromString(
						filterRulesStringFilterRule.class);
				builder.addFilterRules(filterRules);
			}
			List<M> list = service.find(builder);
			long totalCount = service.count(builder);
			IActionResultFind result = this.packfindResult(listparams,
					totalCount);
			stopWatch.stop();
			result.setExecutionTime(stopWatch.getTime());
			String out = marshaller.writeResultToString(result);
			return out;
catch (Exception e) {
			return this.handleException(eresponse);
finally {
		}
	}

Default handler for export action.

Parameters:
resourceName
dataformat
dataString
paramString
resultStart
resultSize
orderByCol
orderBySense
Returns:
Throws:
Exception
	@RequestMapping(params = . + "="
	@ResponseBody
	public String export(
			@PathVariable String resourceName,
			@PathVariable String dataFormat,
			@RequestParam(value = ., required = false, defaultValue = "{}"String filterString,
			@RequestParam(value = ., required = false, defaultValue = ""String filterRulesString,
			@RequestParam(value = ., required = false, defaultValue = "{}"String paramString,
			@RequestParam(value = ., required = false, defaultValue = int resultStart,
			@RequestParam(value = ., required = false, defaultValue = int resultSize,
			@RequestParam(value = ., required = false, defaultValue = ""String orderByCol,
			@RequestParam(value = ., required = false, defaultValue = ""String orderBySense,
			@RequestParam(value = ., required = false, defaultValue = ""String orderBy,
			@RequestParam(value = ., required = true, defaultValue = ""String colNames,
			@RequestParam(value = ., required = true, defaultValue = ""String colTitles,
			@RequestParam(value = ., required = true, defaultValue = ""String colWidths,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		try {
				.debug("Processing request: {}.{} -> action = {} ",
						new String[] { resourceNamedataFormat,
				.debug("  --> request-filter: {} ",
						new String[] { filterString });
				.debug("  --> request-params: {} ",
						new String[] { paramString });
				.debug("  --> request-result-range: {} "new String[] {
						resultStart + "", (resultStart + resultSize) + "" });
			}
			this.prepareRequest(requestresponse);
					resourceName.substring(0, resourceName.length() - 2),
			IDsService<M, F, P> service = this.findDsService(resourceName);
			IDsMarshaller<M, F, P> marshaller = service
filter = marshaller.readFilterFromString(filterString);
params = marshaller.readParamsFromString(paramString);
			IQueryBuilder<M, F, P> builder = service.createQueryBuilder()
					.addFetchLimit(resultStartresultSize).addFilter(filter)
					.addParams(params);
			if (orderBy != null && !orderBy.equals("")) {
				List<SortTokensortTokens = marshaller.readListFromString(
						orderBySortToken.class);
				builder.addSortInfo(sortTokens);
else {
				builder.addSortInfo(orderByColorderBySense);
			}
			if (filterRulesString != null && !filterRulesString.equals("")) {
				List<FilterRulefilterRules = marshaller.readListFromString(
						filterRulesStringFilterRule.class);
				builder.addFilterRules(filterRules);
			}
			IDsExport<M> writer = null;
			if (dataFormat.equals(.)) {
				writer = new DsCsvExport<M>(service.getModelClass());
			}
			if (dataFormat.equals(.)) {
				writer = new DsJsonExport<M>(service.getModelClass());
			}
			if (dataFormat.equals(.)) {
				writer = new DsXmlExport<M>(service.getModelClass());
			}
			if (dataFormat.equals(.)) {
				writer = new DsXmlExport<M>(service.getModelClass());
			}
			if (dataFormat.equals(.)) {
				writer = new DsHtmlExport<M>(service.getModelClass());
				Map<StringObjectproperties = new HashMap<StringObject>();
				properties.put("cssUrl"this.getSystemConfig()
				writer.setProperties(properties);
			}
			if (writer == null) {
				throw new Exception("Invalid data-format " + dataFormat);
			}
			writer.setFieldNames(Arrays.asList(colNames.split(",")));
			writer.setFieldTitles(Arrays.asList(colTitles.split(",")));
			writer.setFieldWidths(Arrays.asList(colWidths.split(",")));
			service.doExport(builderwriter);
			if (dataFormat.equals(.)) {
				response.setContentType("application/vnd.ms-excel; charset=UTF-8");
			}
			if (dataFormat.equals(.)) {
				response.setContentType("text/plain; charset=UTF-8");
			}
			if (dataFormat.equals(.)) {
				response.setContentType("text/html; charset=UTF-8");
			}
			if (dataFormat.equals(.)) {
				response.setContentType("text/xml; charset=UTF-8");
			}
			response.setHeader("Content-Description""File Transfer");
			response.setHeader("Content-Disposition""inline; filename=\""
service.getModelClass().getSimpleName() + "."
dataFormat.toLowerCase() + "\";");
			this.sendFile(writer.getOutFile(), response.getOutputStream());
			return null;
catch (Exception e) {
			return this.handleException(eresponse);
finally {
		}
	}
	@RequestMapping(params = . + "="
	@ResponseBody
	public String report(
			@PathVariable String resourceName,
			@PathVariable String dataFormat,
			@RequestParam(value = ., required = false, defaultValue = "{}"String filterString,
			@RequestParam(value = ., required = false, defaultValue = ""String filterRulesString,
			@RequestParam(value = ., required = false, defaultValue = "{}"String paramString,
			@RequestParam(value = ., required = false, defaultValue = int resultStart,
			@RequestParam(value = ., required = false, defaultValue = int resultSize,
			@RequestParam(value = ., required = false, defaultValue = ""String orderByCol,
			@RequestParam(value = ., required = false, defaultValue = ""String orderBySense,
			@RequestParam(value = ., required = false, defaultValue = ""String orderBy,
			@RequestParam(value = ., required = true, defaultValue = ""String printTitle,
			@RequestParam(value = ., required = true, defaultValue = ""String printLayout,
			@RequestParam(value = ., required = true, defaultValue = ""String colNames,
			@RequestParam(value = ., required = true, defaultValue = ""String colTitles,
			@RequestParam(value = ., required = true, defaultValue = ""String colWidths,
			@RequestParam(value = ., required = true, defaultValue = ""String filterNames,
			@RequestParam(value = ., required = true, defaultValue = ""String filterTitles,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		try {
				.debug("Processing request: {}.{} -> action = {} ",
						new String[] { resourceNamedataFormat,
				.debug("  --> request-filter: {} ",
						new String[] { filterString });
				.debug("  --> request-params: {} ",
						new String[] { paramString });
				.debug("  --> request-result-range: {} "new String[] {
						resultStart + "", (resultStart + resultSize) + "" });
			}
			this.prepareRequest(requestresponse);
					resourceName.substring(0, resourceName.length() - 2),
			IDsService<M, F, P> service = this.findDsService(resourceName);
			IDsMarshaller<M, F, P> marshaller = service
filter = marshaller.readFilterFromString(filterString);
params = marshaller.readParamsFromString(paramString);
			IQueryBuilder<M, F, P> builder = service.createQueryBuilder()
					.addFetchLimit(resultStartresultSize).addFilter(filter)
					.addParams(params);
			if (orderBy != null && !orderBy.equals("")) {
				List<SortTokensortTokens = marshaller.readListFromString(
						orderBySortToken.class);
				builder.addSortInfo(sortTokens);
else {
				builder.addSortInfo(orderByColorderBySense);
			}
			if (filterRulesString != null && !filterRulesString.equals("")) {
				List<FilterRulefilterRules = marshaller.readListFromString(
						filterRulesStringFilterRule.class);
				builder.addFilterRules(filterRules);
			}
			List<M> data = service.find(builder);
			String _tplPath = ..get().getTempPath() + "/print/tpl";
			String _tplName = "print.ftl";
			File _tplDir = new File(_tplPath);
			String _tplFileName = _tplPath + "/" + _tplName;
			File _tplFile = new File(_tplFileName);
			if (!_tplDir.exists()) {
				_tplDir.mkdirs();
			}
			if (!_tplFile.exists()) {
				Resource resource = new ClassPathResource(
						"WEB-INF/freemarker/print.ftl");
				FileUtils.copyFile(resource.getFile(), _tplFile);
			}
			Configuration cfg = new Configuration();
			cfg.setObjectWrapper(ObjectWrapper.DEFAULT_WRAPPER);
			cfg.setDirectoryForTemplateLoading(_tplDir);
			Map<StringObjectroot = new HashMap<StringObject>();
			root.put("printer"new ModelPrinter());
			root.put("data"data);
			root.put("colNames"colNames.split(","));
			root.put("colTitles"colTitles.split(","));
			Map<StringObjectreportConfig = new HashMap<StringObject>();
			reportConfig.put("orientation"printLayout);
			reportConfig.put("title"printTitle);
			reportConfig.put(
					"logo",
			reportConfig.put("runBy"..get().getDisplayName());
			reportConfig.put("runAt"new Date());
			root.put("cfg"reportConfig);
			if (dataFormat.equals(.)) {
				response.setContentType("text/html; charset=UTF-8");
			}
			Template temp = cfg.getTemplate(_tplName);
			Writer out = new OutputStreamWriter(response.getOutputStream(),
					response.getCharacterEncoding());
			temp.process(rootout);
			out.flush();
			return null;
catch (Exception e) {
			return this.handleException(eresponse);
finally {
		}
	}
	public IActionResultFind packfindResult(List<M> data, P params,
			long totalCount) {
		pack.setData(data);
		pack.setParams(params);
		pack.setTotalCount(totalCount);
		return pack;
	}
New to GrepCode? Check out our FAQ X