暑期项目经验(六)--struts+jasperreporters

            struts + jasperreporters

1.jasperreporters+ireport,版本要对应,先用ireport制作相应模版,生成相应.jasper文件。

实例如下:

2.jar包:

3.实体类

package com.pxj.report.pojo;

public class Address {
    private String city;
    private String zipcode;
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getZipcode() {
        return zipcode;
    }
    public void setZipcode(String zipcode) {
        this.zipcode = zipcode;
    }

}

package com.pxj.report.pojo;

import java.util.HashSet;
import java.util.Set;

public class Company implements Comparable<Company>{

    private String name;
    private Address address;
    private Set<Staff> staffs = new HashSet<Staff>();

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public Set<Staff> getStaffs() {
        return staffs;
    }

    public void setStaffs(Set<Staff> staffs) {
        this.staffs = staffs;
    }

    public int compareTo(Company o) {
        return o.getName().compareTo(this.getName());
    }

}

package com.pxj.report.pojo;

public class Staff {
    private String name;
    private Company company;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Company getCompany() {
        return company;
    }
    public void setCompany(Company company) {
        this.company = company;
    }

}

4.Action

package com.pxj.report.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.opensymphony.xwork2.ActionSupport;
import com.pxj.report.pojo.Address;
import com.pxj.report.pojo.Company;
import com.pxj.report.pojo.Staff;

public class DemoAction extends ActionSupport{
    private static final long serialVersionUID = 1446363L;

    private List<Staff> list;
    Map<String,Object> map;

    public List<Staff> getList() {
        return list;
    }

    public void setList(List<Staff> list) {
        this.list = list;
    }

    public Map<String, Object> getMap() {
        return map;
    }

    public void setMap(Map<String, Object> map) {
        this.map = map;
    }

    @Override
    public String execute() throws Exception {
        list = getData();
        map = getParameter();
        return super.execute();
    }

    private Map<String, Object> getParameter() {
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("date", "2014-08-04");
        return map;
    }

    private List<Staff> getData() {
        Address addr = new Address();
        addr.setCity("重庆");
        addr.setZipcode("20140804");

        Company company1 = new Company();
        company1.setName("天友");
        company1.setAddress(addr);
        Company company2 = new Company();
        company2.setName("谷歌");
        company2.setAddress(addr);

        Staff staff1 = new Staff();
        staff1.setName("张三");
        staff1.setCompany(company1);
        Staff staff2 = new Staff();
        staff2.setName("李四");
        staff2.setCompany(company2);
        Staff staff3 = new Staff();
        staff3.setName("王五");
        staff3.setCompany(company1);

        List<Staff> list = new ArrayList<Staff>();
        list.add(staff1);
        list.add(staff2);
        list.add(staff3);
        return list;
    }
}

5.struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <package name="project" namespace="/" extends="jasperreports-default">

        <action name="viewDemo" class="com.pxj.report.action.DemoAction">
            <result name="success" type="jasper"> <!-- 指定类型 -->
                <param name="location">/jasper/strust2Demo.jasper</param>  <!-- 指定jasper文件位置 -->
                <param name="dataSource">list</param>   <!-- 指定数据源 -->
                <param name="format">PDF</param>     <!-- 指定生成格式 -->
                <param name="reportParameters">map</param> <!-- 指定传递替换参数 -->
            </result>
        </action>

    </package>
</struts>
时间: 2024-11-05 14:40:19

暑期项目经验(六)--struts+jasperreporters的相关文章

暑期项目经验(六)--struts+json

struts+json tips:注意 struts.xml配置,  json-default  及引入 struts2-json-plugin-2.1.8.1.jar 包 1.json基础知识 JSON(JavaScript Object Notation)是一种轻量级的数据格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是Javascript原生格式,这意 味着在javascript中处理JSON数据不需要任何特殊的API或工具包,而且效率非常高. JSON的结构如下

暑期项目经验(十)--struts + poi

struts + poi 一.poi知识讲解 可以下载 孔浩老师 的poi视频,其中封装的四个工具类,很好用,能方便应用到项目中. 二.poi实例 1.引入jar包 2. 引入四个工具类 1 package com.pl.util; 2 3 import java.lang.annotation.Retention; 4 import java.lang.annotation.RetentionPolicy; 5 6 @Retention(RetentionPolicy.RUNTIME) 7 p

暑期项目经验(五)--struts+ajax

struts+ajax 一.ajax知识点 二.struts+ajax a.  index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+

暑期项目经验(十一)--网页中文乱码问题

网页中文乱码问题 做项目时,不可避免的会碰到中文显示为乱码为问号的情形.网上讲得方法很多,不尽相同.反正我的做法是: 1.修改tomcat中server.xml, 找到Connectotr,在里面加上URIEncoding="UTF-8" <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443

暑期项目经验(九) -- request session application

request.session.application 一.基础知识 可以看看  浅谈:request,session,application(http://blog.csdn.net/hzc543806053/article/details/7416007) 要点: 作用域: request<session<application 共同方法:都可以使用 setAttribute(String name , Object o ) ,getAttribute(String name) 二.在ja

暑期报修项目经验分享二(附原码)

楔子 第二期项目经验分享,其实整个项目流程,我们只是参与了其中一小部分,仅仅是添加了材料管理模块的内容,在第一期的实践里面,主要维护材料类别的增查改操作.二期维护做的是材料出入库处理,因为我处理的是入库管理这一块,所以分享下做这一块的经验. 需求分析: 在分析业务需求的时候,因为考虑到出入库在一张数据表里面,即是共用数据,那么type区分出入库,在写代码的时候一个反人类的操作就是把流水号设置成整形,虽然影响不大,另外关于材料类别代码这里,因为材料类别是三级联动设置,所以我们只取最后一级的代码,因

项目经验分享[转自min.jiang]

最近三个月,我非常荣幸的做为TeamLeader带领几个小组成员做了一个国外项目,这里想为大家分享一些小经验,尽管我佣有六年多的项目经验,但我一直的方向是架构师.大家知道架构师一般情况是偏向技术方向,我也不例外,前三年,主要精力都花在技术架构上,挖空心思在通用平台上做出自己的东西,体现个人价值.但最近一年也想在项目管理上有所突破,有人可能认为方向走偏了,但我不这样认为,在中国的软件环境下,在很大程度上,公司更希望全才,或者说有些公司并不仅仅希望架构师只懂技术.而架构师如果一味的只走技术路线,在某

IdentityServer4系列之中文文档及实际项目经验分享

0.前言 原文:http://docs.identityserver.io/en/release/声明: 1.目录一至五章节根据IdentityServer英文文档翻译而来,有些内容会根据自己的理解来表述的(包括标题),文档的内容会不断的更新. 2.第六章节会进行阐述在实际项目中所用的内容以及问题 一.介绍 IdentityServer4特性简介 深入讲解 术语解释 支持规范 包和构建说明 二.快速入门 设置和概述 使用客户端证书访问API(客户端模式) 使用密码访问API(密码模式) 使用Op

java程序员面试交流项目经验

粘贴自:https://blog.csdn.net/wangyuxuan_java/article/details/8778211 1:请你介绍一下你自己 这是面试官常问的问题.一般人回答这个问题过于平常,只说姓名.爱好.工作经验,这些简历上都有.其实,面试官最希望知道的是求职者能否胜任工作,包括:最强的技能.最深入研究的知识领域.个性中最积极的部分等. 2:说说你的家庭 面试时询问家庭问题不是非要知道求职者家庭情况,探究隐私,而是要了解家庭背景对求职者的塑造和影响.面试官希望听到的重点也在于家