文章类型:设计基础
一些客户由于自身业务问题,给报表传递参数的时候参数过长,超过了IE浏览器里面参数不能超过2048字节的限制,这样如果采用普通的url传递参数或者采用get()方法传递参数,就会因为参数在浏览器地址栏显示不全而出现错误,参数也就没有办法传递,对于这种问题,可以常用form表单的post()方式传递,这种传递方式传递参数时,参数不在浏览器地址栏里面显示,这样参数就可以正常传递给报表页面了,下面就用一个小例子介绍一下参数长度过长时的解决办法。
有些情况下客户的参数值过长,长度超过了浏览器的限制(IE浏览器地址栏对参数长度的限制是2048字节)。比如参数的样式如下图所示:
那么就要采用post方式传递参数。
第一步:先做一个用post方式传递参数的简单页面,页面的代码如下:
contentType=”text/html;charset=GBK” %>
taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report”
%>
topmargin=0 leftmargin=0 rightmargin=0
bottomMargin=0>
method=”post” action=”t.jsp” id=”form1″>
name=”arg1″ type=”text” size=
“20″ style=
“height:20px” value=”" />
id=”test” type=”submit” value=”提交“/>
上面代码中form1传递参数就是采用post的方法,form1中name为arg1文本框作用是填入参数的,保存上面代码为a.jsp。
第二步:再写一张展现报表并且接受参数的jsp,jsp的代码如下:
contentType=”text/html;charset=GBK” %>
taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report”
%>
import=”java.io.*”%>
import=”java.util.*”%>
import=”com.runqian.report4.usermodel.Context”%>
topmargin=0 leftmargin=0 rightmargin=0
bottomMargin=0>
request.setCharacterEncoding( “GBK” );
String arg1 = request.getParameter( “arg1″ );
String param = “arg1=”+arg1;
%>
align=”center”>
reportFileName=”test.raq”
needSaveAsExcel=”no”
needSaveAsPdf=”no”
needSaveAsText=”no”
needSaveAsWord=”no”
params=”” />
这张jsp中接受上一张jsp用post方式传递过来的参数arg1,将参数传递给报表,保存上面代码为t.jsp。
第三步:制作一张名为test.raq的报表,报表中有一个参数arg1,报表的样式如下图所示:
保存报表为test.raq。
第四步:查看效果。
访问a.jsp,页面上输入第一幅图中的参数值,点击查询按钮,如下图所示:
点击提交按钮,看到页面的效果如下图所示:
参数被传递过来了,这样当参数过长时传递参数的问题就可以解决了。