JSP页面中的Jasper报告

JSP页面中的Jasper报告,第1张

JSP页面中的Jasper报告

我已经编写了一个Struts(1.1)应用程序,可呈现PDF和CSV。我将在动作处理程序中执行此 *** 作:

public ActionForward execute(ActionMapping mapping, ActionForm form,        HttpServletRequest request, HttpServletResponse response)        throws Exception {    response.setContentType("application/pdf");    OutputStream out = response.getOutputStream();    try {        // generate the PDF    } finally {        out.close();    }    return null; }

更新:将集合提供给JasperReports

package reports;import java.lang.reflect.Method;import java.util.Collection;import java.util.Iterator;import java.util.Arrays;import net.sf.jasperreports.engine.JRDataSource;import net.sf.jasperreports.engine.JRField;import net.sf.jasperreports.engine.JRException;public class CollectionDataSource implements JRDataSource {    private Iterator iterator = null;    private Object current = null;    public CollectionDataSource(Collection col) {        if (col != null) { iterator = col.iterator();        }    }    public CollectionDataSource(Object array[]) {        this(Arrays.asList(array == null ? new Object[0] : array));    }    public boolean next() throws JRException {        if (iterator == null || !iterator.hasNext()) { return false;        } else { current = iterator.next(); return true;        }    }    public Object getFieldValue(JRField field) throws JRException {        if ("this".equals(field.getName())) { return current;        } else if (current == null) { return null;        } else { Class<?> clazz = current.getClass(); char chars[] = field.getName().toCharArray(); chars[0] = Character.toUpperCase(chars[0]); String name = new String(chars); Method method = null; try {     method = clazz.getMethod("get" + name); } catch (NoSuchMethodException e) {     if (field.getValueClass() == Boolean.class) {         try {  method = clazz.getMethod("is" + name);         } catch (NoSuchMethodException e1) {         }     } } if (method == null) {     throw new JRException("No getter for field " + name); } try {     return method.invoke(current); } catch (Exception e) {     throw new JRException("Exception in getter of " + name, e); }        }    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5066418.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存