`
lijun87
  • 浏览: 264263 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

displaytag中去除不需要的参数

阅读更多

       我们使用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功能比较完善,但是也有一些局限——毕竟不是你自己编的代码嘛!——有时需要一些额外的工作,才能让它很好的为你工作。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics