- 浏览: 541834 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (230)
- java (87)
- c/c++/c# (39)
- ASP.net MVC (4)
- eclipse/visual studio (3)
- tomcat/weblogic/jetty (13)
- linux/unix/windows (20)
- html/javascript/jquery/kendo/bootstrap/layui/vue/react (31)
- hibernate/struts/spring/mybatis/springboot (21)
- lucene/solr/ELK (2)
- shiro (0)
- oracle/sqlserver/mysql/postgresql (23)
- shell/python/ruby (6)
- android (0)
- maven/ant (1)
- freemarker/thymeleaf/velocity (1)
- open source project (41)
- cache/memcached/redis (0)
- nosql/hadoop/hbase/mongodb (0)
- system architecture/dubbo/zookeeper (0)
- software testing (0)
- system optimization (0)
- system security (0)
- tcp/udp/http (2)
- roller/wordpress (2)
- 工具收藏 (8)
- 文摘 (4)
- 生活 (0)
最新评论
-
coconut_zhang:
这个demo 非常完整了,是指下面说的那个html 模版,模版 ...
flying sauser, thymeleaf实现PDF文件下载 -
a93456:
你好,你有完整的demo吗? String template这 ...
flying sauser, thymeleaf实现PDF文件下载 -
yujiaao:
fn 函数循环是没有必要的啊,可以改成
protecte ...
Java 笛卡尔积算法的简单实现 -
安静听歌:
设置了.setUseTemporaryFileDuringWr ...
使用jxl导出大数据量EXCEL时内存溢出的解决办法 -
q280499693:
写的很详细,但是我现在想知道他们是怎么定位log4j.prop ...
关于SLF4J结合Log4j使用时日志输出与指定的log4j.properties不同
Recently I spent a whole day searching for solutions and experimenting with solutions for how to pass additional report parameters to a Jasper Report from the Struts 2 framework . It took 8 hours because I had to piece together the information that I needed from multiple locations and then I had to experiment and test the solutions in my application .
最近,我花了一整天的时间来寻找和测试如何通过 Struts2向JasperReport传递额外参数的方案。我从多方收集资料,然后在我自己的应用程序里进行测试,为此花了8个小时来拼凑这些信息。
Therefore, I am taking what I have learned and presenting it here so that others do not have to a waste a similar amount of time on this in the future.
因此,我把我的解决方法和我所知道的贴出来,以至其他的朋友在这个问题上不会浪费大量的时间。
Step1: Configuring the Struts2 JasperReports Plug-in
The Struts2 JasperReports plug-in makes integrating JasperReports into your application simple and even enjoyable. The following shows how to configure a report using this plug-in .
步骤1:配置Struts2配置文件以支持 JasperReports插件
Struts2的JasperReports插件可以在你的应用程序里制作简单而又有趣的综合报表。下面的代码将向你展示如何配置JasperReports插件与Struts2协同工作 。
译者注: JasperReports 插件在Struts2的完整压缩包里,包名是 struts2-jasperreports-plugin-2.x.x.jar,将其拷贝到WEB项目工程的CLASSPATH下,即 “WebContent\WEB-INF\lib”下。
Struts关于JasperReport的部分配置XML代码:
- <package name="com.olympus.sapg.smtinnovation.action.jasper" extends="jasperreports-default">
- <result-types>
- <result-type name="jasper" class="org.apache.struts2.views.jasperreports.
- JasperReportsResult"></result-type>
- </result-types>
- <action name="pullMaterielBill" class="com.olympus.sapg.smtinnovation.action.
- jasper.PrintPullMaterielBill">
- <result name="success" type="jasper">
- <param name="location">jasper\productionPlan\pullMaterielBill.jasper</param>
- <param name="format">HTML</param>
- <param name="dataSource">pullMaterialList</param>
- </result>
- </action>
- </package>
To pass a Map of additional report parameters to the report you need to include an additional "param name" called "reportParameters" tag within the "result" tag. The value for this tag should be the name of the Map holding the keys and values for the report parameters in your Action, in my case I called the Map "reportParams".
要想通过MAP方法向报表中传递一个额外参数,在 struts.xml文件中的“result”标签中需要添加一个名为“reportParameters”的参数名,标签中参数名就是你在Action 中所设置的值,依我看,我认为这是一个匹配参数的操作。
- <package name="com.olympus.sapg.smtinnovation.action.jasper" extends="jasperreports-default">
- <result-types>
- <result-type name="jasper" class="org.apache.struts2.views.jasperreports.
- JasperReportsResult"></result-type>
- </result-types>
- <action name="pullMaterielBill" class="com.olympus.sapg.smtinnovation.action.
- jasper.PrintPullMaterielBill">
- <result name="success" type="jasper">
- <param name="location">jasper\productionPlan\pullMaterielBill.jasper</param>
- <param name="format">HTML</param>
- <param name="dataSource">pullMaterialList</param>
- <param name="reportParameters">Params</param>
- </result>
- </action>
- </package>
Step 2 : Modify the Report Action
Now go to your Action and expose a getter for the Map that you specified in Step 1. After I made my changes the following code was added to my Action to expose that getter.
步骤2:修改报表Action
现在,进入你的Action,为你在步骤1中所期望的 Map数据配置一个getter方法,下面的代码中,将在Action中增加Map的getter方法。
- private HashMap Params = new HashMap();
- public HashMap getParams() {
- return Params;
- }
- public List<PullMaterial> getPullMaterialList(){
- List<Criterion> criterionPullMaterial=new ArrayList<Criterion>();
- List<Criterion> criterionPullMaterialBill=new ArrayList<Criterion>();
- List<PullMaterial> pullMaterials = new ArrayList<PullMaterial>();
- criterionPullMaterialBill.add(Restrictions.between("billNumber",
- queryBillNumBegin,
- queryBillNumEnd));
- pullMaterials = pullMaterialService.pullMaterialBillMake(
- Order.asc("billNumber"),
- Order.asc("materialNumber"),
- criterionPullMaterial,
- criterionPullMaterialBill);
- Params.put("name", "许亮");
- return pullMaterials;
- }
Step 3: Use the Parameters in the Report
As you saw in Step 2 I added a parameter to the Map called "sessionName". Next I need to go into my report and modify the report to get this value out of the parameter map and into the report for display. Here is the XML that I added to my report to make the value for this parameter available to body of the report .
步骤3:在报表中使用参数
你也看到了,在步骤2中我增加了一个参数“name” (Params.put("name", "许亮");),接下来,我要进入我的报表,给报表设置一个参数名也为“name”,下面是部分代码:
jxml代码:
- <parameter name="reportParams.name" isforprompting="false" class="java.lang.String">
- </parameter>
发表评论
-
Spring Data JPA框架系列(三)-自定义Repository接口详解
2022-05-08 09:03 0前面讲了Spring Boot 整合Spring Boot ... -
flying sauser, thymeleaf实现PDF文件下载
2016-06-17 14:58 5217thymeleaf 的资料比较少,资料大部分都是和spri ... -
thymeleaf与spring整合
2016-06-15 10:08 12341、使用的是Spring EL而不是Ognl。2、访问上下文 ... -
SpringMVC 400 Bad Request 问题
2016-06-15 09:11 1964在提交表单时,发生400错误,并未进入save方法。 ... -
eclipse插件Maven添加依赖查询无结果的解决方法(Select Dependency doesn't work)
2016-04-22 08:33 735在eclipse中用过maven的可能都遇到过这种情况,我 ... -
Freemarker网站静态化的实现(转载)
2012-06-20 13:39 1423做程序也做了将近4年时间了,从来没有发过什么技术性的文章,今 ... -
SpringSecurity 3配置文件
2012-06-10 12:58 1311最近查找了一些Spring security3的资料,感觉网上 ... -
Struts2标签库
2012-05-19 21:19 1546Struts2标签库概述使用标 ... -
struts2的validate错误跳转与chain配合使用的要点
2012-05-18 16:30 1462本文基于struts2.1.8.1 按照struts2的官方文 ... -
OGNL表达式struts2标签“%,#,$”
2012-05-18 15:32 1158一、什么是OGNL,有什么特点? ... -
如何自定义Struts2表单验证后的错误信息显示格式/样式
2011-11-17 10:43 2839环境 Struts 2.1.8.1 + Myeclipse ... -
Struts2验证总结
2011-11-17 10:41 1285在Struts2应用中提供验证的方式有两种——编程式和声明式。 ... -
strtus2.0实现上传
2011-10-31 10:44 1326Struts 2是通过Commons FileUpload文件 ... -
input中disabled,readonly解决办法及区别
2011-05-27 10:35 6366input的字段当为diabled时时无法获取数值得,所以最 ... -
getCurrentSession 与 openSession() 的区别
2011-05-26 11:00 11141 getCurrentSession创建的session会和 ... -
Struts2拦截器执行顺序
2010-11-15 11:25 2735在之前的文章中,我们 ... -
struts2默认拦截器详细说明
2010-11-15 11:23 19871. 理解拦截器 1.1. 什么是拦截器: 拦 ... -
struts2与jasperreport整合不能显示图片imgags/px
2010-09-08 13:37 2527终结解决方案:Struts2整 ... -
Spring Write operations are not allowed in read-only mode 错误
2010-09-02 10:19 1216使用Spring提供的Open Session In View ... -
hibernate配置参数
2009-04-03 23:55 1349Hibernate输出SQL语句以便更加深入调试程序----参 ...
相关推荐
5. **配置Struts2**:为了让Struts2知道如何处理报表请求,我们需要在Struts2的配置文件(struts.xml)中添加相应的Action配置。 ```xml <!-- struts.xml --> <param name="location">/path/to/your/report....
Struts2和JasperReport是Java开发中两个重要的框架,它们在企业级应用开发中扮演着关键角色。Struts2是一个强大的MVC框架,用于构建动态、数据驱动的Web应用程序,而JasperReport则是一个开源的报表工具,可以生成...
总之,使用Struts2、JasperReport和iReport开发报表时,要关注数据源配置、中文支持、Struts2与报表之间的交互以及子报表的参数传递。遇到问题时,多参考官方文档、社区资源,结合错误信息进行排查,往往能找到合适...
5. 配置 Struts2:在 struts.xml 中配置 Action,指定对应的 Action 方法。 6. 渲染并返回报表:Action 方法中生成报表后,可以通过 StreamingActionResult 或其它方式将其发送回客户端。 这个示例虽然简单,但它...
6. **Struts2配置**:在Struts2的配置文件(struts.xml)中,定义一个导出Excel的Action,返回类型设置为流类型(通常为“stream”),并将生成的Excel内容设置到HttpServletResponse的输出流中。 7. **Action实现*...
在整合Struts2和JasperReport时,我们需要一些特定的jar包来确保两者能正确通信和协同工作。这些jar包通常包含了Struts2的核心组件、JasperReport库以及它们的依赖。下面,我们将详细讨论整合过程中可能用到的关键...
adjust2.1是adjust2.0的改良; ...2、图形报表HTML格式预览无法...若${rptAlone}取值为N,则为该配置的报表放在一个公共的目录下,此时存在上面提到的覆盖现象,此是默认方式,若采用这种默认方式,无需配置参数rptAlone;
2. 参数传递:如果报表需要用户输入参数,Struts2 可以通过 ActionForm 或者值栈来接收并传递这些参数到报表生成过程中。 3. 安全性:确保对敏感数据的访问和展示进行适当的安全控制,避免信息泄露。 4. 性能优化:...
为了在Struts2中使用JasperReport,需要在 `struts.xml` 文件中进行配置: ```xml <result-type name="jasper" class="org.apache.struts2.views.jasperreports.JasperReportsResult"/> ...
提供的`testIreport`压缩包可能包含了一个简单的Struts2项目,其中已经配置好了IReport报表的生成和展示。下载后,只需导入到IDE中,配置好相关的数据库连接,就可以运行示例,查看如何在Web页面上生成和展示报表。...
6. **整合到Struts2**:为了在Struts2中调用这些功能,你需要在struts.xml配置文件中定义Action,指定返回类型为stream,并设置相应的参数,如输出的MIME类型和文件名。 通过以上步骤,你可以利用Struts2和...
12. **插件机制**: Struts2具有强大的插件扩展性,例如Freemarker、Tiles、JasperReport等,可以轻松集成到Struts2项目中。 以上只是Struts2框架中的一部分核心概念和API,实际的`struts2-API.chm`文档会包含更多...
2. 参数传递:允许用户在运行时动态输入参数,控制报表的生成。 3. 脚本let:使用脚本let可以编写自定义逻辑,增强报表的计算和处理能力。 4. 图表:JasperReport内置丰富的图表库,可以创建柱状图、折线图、饼图...
总的来说,JasperReports和Struts2的结合提供了强大的动态报表生成能力,对于需要向用户展示复杂数据的应用来说,这是一种非常实用的解决方案。通过深入理解和实践"jasperreports 3 struts2开发资料",开发者可以...
在这个初学用例中,我们将探讨如何使用JasperReport与Java和Struts2框架集成,以创建和展示报表。 **1. JasperReport基本概念** JasperReport支持多种数据源,包括数据库、CSV、XML等,可以生成PDF、HTML、Excel等...
2. **Struts2框架**:使用Action的result配置生成报表。 3. **JSF(JavaServer Faces)**:通过FacesContext和ExternalContext与JasperReport交互。 **五、JasperReport高级特性** 1. **表达式(Expressions)**:...
6. **返回结果**:Struts2的Action完成后,将报表以InputStream或byte[]的形式返回,然后在Struts2的结果类型中配置,如`stream`或`tiles`,以在浏览器上正确显示报表。 7. **视图渲染**:在视图层,可能是一个JSP...
接着,我们需要在Struts2的配置文件`struts.xml`中进行相应的配置。这包括定义Action类,设置结果类型,并指定生成PDF报表的Action。例如: ```xml <param name="contentType">application/pdf ...
6. 集成到应用程序:了解如何将JasperReport集成到Spring、Struts等主流Java框架中,以提供报表服务。 7. 报表服务器:JasperServer是JasperReport的商业版本,提供了一套完整的报表服务器解决方案,包括权限管理、...