displaytag中去除不需要的参数

xiaoxiao2026-05-20  18

       我们使用display tag来生成表格。 displaytag功能比较完善,它具有分页和页码栏的功能。我们没有使用它的分页功能,因为这种分页不是在数据库查询层面的,所以数据库没有减轻丝毫的负担。       所以我们只让displaytag为我们显示数据和生成页码栏,而由我们自己编码来处理数据的分页。以下就是displaytag的属性设置。<display:table id="question"                           name="questionPage.list"                           class="its"                           size="questionPage.count"                           partialList="true" pagesize="questionPage.pageSize"                           requestURI="/question/questionQueryAction.do?method=query">      partialList这个属性就是告诉displaytag不使用它的分页功能。               页码栏页号参数都由displaytag生成,为了获取这个页号,必须知道它的参数名,这是displaytag根据id属性生成的,要得到它必须使用displaytag库中的API。以下是一个可以根据id来获得参数名的函数。    protected String getPageParamName(String id){        return  new  org.displaytag.util.ParamEncoder(id).                              encodeParameterName(org.displaytag.tags.TableTagParameters.PARAMETER_PAGE);    }        有了参数名,就可以通过request.getparameter来获得页码了,之后的分页查询就可以做了。        使用displaytag的页码,也有其局限性。你必须保证页码参数必须以parameter的形式存在于request中。所以如果你想改变页码的话,对页码的控制逻辑一定要在IE里用JS来做,一旦到了server端,就无法改变了,因为parameter是不能改变的。       在表格中会有一些翻页的链接,这些连接会由displaytag自动生成,除了页码等参数外,还会把所有request中的parameter统统加入到URL中去。所以看到的URL会是这样的。http://localhost:8080/question/questionQueryAction.do?keyword=&beginDate=2006-08-21&products=&sort1=all&endDate=2006-08-23&d-4031840-p=2&business=all&method=query&method=query&keywordType=V1        其中只有d-4031840-p=2是displaytag自己的,它是传递页码的参数。其它都是request中的参数,有些是查询参数,有些是和dispatchaction有关的参数。这样很有好处,特别是在做查询页面的时候,这些参数都是很有用的。       但是,如果遇到不需要的参数,也将不可避免的被加进去,通常是无害的,但有时是会致命的。有一次,我用表单上传一段文字,结果也被加到了URL里面,这编文章很长,而且是有HTML格式的,这最终导致链接无法使用。为了去掉这些没用的参数,可以使用displaytag的一个属性。如下:excludedParams="id baseCode baseCode1 baseCode2 itemCode subDate aboutUser aboutProduct subjectTitle subjectContent"        把不要的参数统统列出来,用空格搁开就可以了。        总之,displaytag功能比较完善,但是也有一些局限——毕竟不是你自己编的代码嘛!——有时需要一些额外的工作,才能让它很好的为你工作。

转载请注明原文地址: https://www.6miu.com/read-5049051.html

最新回复(0)