jsp向ireport传递参数
我使用 iReport 开发了一份报告。该报告应该在几个不同的数据库中运行。
在报告中我放置了几个参数,其中一些包含日期格式。当我使用 to_date(
时,一开始一切都很顺利。
但现在看来这个方法不能在Postgres上运行,所以我尝试不使用to_date()
。
我只是将其保留为
ex: date = $P{date}
并将初始值更改为
new SimpleDateFormat("dd/MM/yyyy").parse("01/01/ 2011”)
。
编译时没有错误,但是当我运行应用程序时,出现错误,原因是:
java.io.StreamCorruptedException: invalid stream header: 3C68746D.
后来我尝试将参数类型更改为 >String
(来自 java.util.Date
)并将 ""
作为初始值。
它运行良好,除了 Oracle 数据库。有人可以帮助我吗?
I developed a report using iReport. The report is supposed to run in several different databases.
In the report I've put several parameters, some of them contains date format. Everything goes well at the beginning when I'm using to_date(<parameter variable>)
.
But now it seems this method can't be run on Postgres, so I tried not to use to_date()
.
I just leave it as
ex: date = $P{date}
and i change the initial value to
new SimpleDateFormat("dd/MM/yyyy").parse("01/01/2011")
.
There is no error when compilling, but when i run through application, it appear error caused by:
java.io.StreamCorruptedException: invalid stream header: 3C68746D.
Later I tried to change the parameter type to String
(from java.util.Date
) and put ""
as it initial value.
It works well, except for Oracle database. Can someone help me?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先,我想您已经意识到,当您执行
new SimpleDateFormat("dd/MM/yyyy").parse("01/01/2011") 时,您试图将字符串值放在日期字段上
,对吧?我不知道我的理解是否正确,但我猜你的数据库中的字段是日期,所以你必须使用日期,而不是字符串。最终的格式转换(将生成一个字符串)必须位于您的报告模板或您正在使用的任何模板中。但数据库会将日期返回给您的 API。
First of all, I guess you've realized that you were trying to put String values on date fields, when you did
new SimpleDateFormat("dd/MM/yyyy").parse("01/01/2011")
, right?I don't know if I get you right, but I guess the field in your data base is Date, so you must use dates, not strings. The final format conversion (that will result in a string) must be in your report template or whatever you're using. But the database will return dates to your API.
将字符串格式和“DD/MM/YYYY”格式的日期从代码传递到 i-report。
在 i-report 中按以下格式编写查询(更改日期格式以适应输入):
to_date('fieldnameofDB','DD/MM/YYYY')=$P{nameOfParameterPassed}
只要改变你接受参数的方式,将参数的格式设置为String即可。
Pass the the date in the format of string and in 'DD/MM/YYYY' format to i-report from your code.
In i-report write the query in this format (change the format of the date compared to suit the input):
to_date('fieldnameofDB','DD/MM/YYYY')=$P{nameOfParameterPassed}
Just change the way you accept the parameter, set the format of the parameter to String.