001 package com.khubla.pragmatach.plugin.jasper; 002 003 import java.util.HashMap; 004 import java.util.Map; 005 006 import com.khubla.pragmatach.framework.api.PragmatachException; 007 import com.khubla.pragmatach.framework.api.Response; 008 import com.khubla.pragmatach.framework.controller.BeanBoundController; 009 import com.khubla.pragmatach.framework.controller.ControllerBeanUtil; 010 import com.khubla.pragmatach.framework.controller.impl.template.AbstractTemplateEngineController; 011 import com.khubla.pragmatach.framework.form.Form; 012 import com.khubla.pragmatach.framework.form.FormItem; 013 014 /** 015 * @author tome 016 */ 017 public class JasperController extends AbstractTemplateEngineController implements BeanBoundController { 018 /** 019 * ctor 020 */ 021 public JasperController() { 022 } 023 024 private Map<String, String> getPostFieldValues() throws PragmatachException { 025 try { 026 final Form form = Form.parse(getRequest().getHttpServletRequest()); 027 if (null != form) { 028 final Map<String, String> ret = new HashMap<String, String>(); 029 for (final FormItem formItem : form.getItems().values()) { 030 ret.put(formItem.getName(), formItem.getValue()); 031 } 032 return ret; 033 } else { 034 return null; 035 } 036 } catch (final Exception e) { 037 throw new PragmatachException("Exception in getPostFieldValues", e); 038 } 039 } 040 041 /** 042 * render 043 */ 044 public Response render() throws PragmatachException { 045 try { 046 final String template = getTemplate(); 047 return new JasperResponse(getCacheHeaders(), getTemplateName(), template, getTemplateContext()); 048 } catch (final Exception e) { 049 throw new PragmatachException("Exception in render", e); 050 } 051 } 052 053 @Override 054 public void populateController() throws PragmatachException { 055 ControllerBeanUtil.populateController(this, this.getPostFieldValues()); 056 } 057 }