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

display tag中去除不需要的参数

    博客分类:
  • JSP
阅读更多

        我在一个MIS系统开发项目组,是一个带项目经理在内只有4个人的小组。我们使用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功能比较完善,但是也有一些局限——毕竟不是你自己编的代码嘛!——有时需要一些额外的工作,才能让它很好的为你工作。

 

 

分享到:
评论
2 楼 syzxf1996 2011-02-11  
thank you ,想收藏,没有成功,只能留言了。希望下回还能找到
1 楼 ferreousbox 2010-02-09  
你为什么不直接实现DisplayTag的PaginatedList接口呢,这样一来就方便很多了,不用设置partialList,而且也不用费心的来获取分页参数

相关推荐

    ecshop基于php5.0版本以上的配置修改

    在生产环境中,通常不希望显示任何错误或警告信息。可以通过修改`ini_set()`来实现这一点。 **修改前**: ```php @ini_set('display_errors', 1); ``` **修改后**: ```php @ini_set('display_errors', 0); ``` #...

    WordPress首页显示多个图片及文字友情链接的方法

    需要注意的是,`wp_list_bookmarks`函数默认会将链接包裹在一个`&lt;li&gt;`元素内,这可能不符合你的设计需求。可以通过自定义CSS来调整样式,以去除或更改这个默认的HTML结构。例如,你可以添加以下CSS规则: ```css #...

    windows2003 IIS6配置PHP和MySql数据库

    8. 找到php.ini中的extension配置行,并去掉需要启用的模块前的分号,例如php_mysql.dll,以启用与MySQL相关的PHP功能。 接下来配置IIS6: 9. 在IIS管理器中添加Web服务扩展,扩展名为php5isapi,指定可执行文件...

    cms后台管理

    //这个模板就是自己声明的,即content_list.html,如果采用自定义模板的话,页面中可以只写上标签,并添加上标签内需要的几个参数,不需要写标签体的内容,会去自动调用模板中的标签体。 FrontUtils.includeTpl(TPL...

    UG插件开发说明(UIStyler)

    tag_t disPart = UF_PART_ask_display_part(); UF_PART_ask_part_name(disPart, fname); if (UF_initialize() != 0) return (UF_UI_CB_CONTINUE_DIALOG); data.item_attr = UF_STYLER_VALUE; data.item_id =...

    北大青鸟软件课程全部单词

    - **tag**:标签,用于标记数据的关键词。 - **modify**:修改,改变数据或对象的状态。 - **range**:范围,一组连续的值。 - **adapter**:适配器,用于将一个接口转换为另一个接口的类。 - **datasource**:数据...

    华为路由器vlan ospf rip static 单臂 多臂 三层 链路聚合 dhcp ppp pppoe的配置

    [S1-Ethernet0/0/2]port hybrid untagged vlan 2 //允许VLAN 2数据帧通过时去除Tag ``` **目的**:通过配置VLAN实现不同业务之间的隔离,提高网络安全性和灵活性。 --- ##### 3. 配置OSPF OSPF(开放最短路径优先...

    Android获取相册图片-实现选择相册图片功能

    1. **请求权限**:首先,你需要在AndroidManifest.xml中声明读取存储的权限,并在运行时根据Android版本动态申请权限,例如使用`ActivityCompat.checkSelfPermission()`和`ActivityCompat.requestPermissions()`方法...

    jQuery完全实例.rar

    这个函数的作用如同$(document).ready()一样,只不过用这个函数时,需要把页面中所有需要在 DOM 加载完成时执行的$()操作符都包装到其中来。从技术上来说,这个函数是可链接的--但真正以这种方式链接的情况并不多...

    js使用小技巧

    网页传递参数 location.search(); 可编辑 obj.contenteditable=true 执行菜单命令 obj.execCommand 双字节字符 /[^x00-xff]/ 汉字 /[u4e00-u9fa5]/ 让英文字符串超出表格宽度自动换行 word-wrap: ...

    LotusDomino学习笔记.doc

    - **@Trim**: 是一个内置的LotusScript函数,用于去除字符串两端的空白字符。 - **@DbColumn**: 此函数用于获取指定列的信息。通常在视图中使用此函数来获取特定列的内容。 #### 2. 隐藏判断常用的命令 - **常用...

    python入门到高级全栈工程师培训 第3期 附课件代码

    02 css的列表属性与display属性 03 css的内外边距 04 css的内外边距补充 05 css的float属性 06 css的清除浮动 07 css的定位 08 css的margin定位 第40章 01 抽屉作业之head区域(导航条) 02 抽屉作业之置顶区域 03...

    Js技巧大全

    - 应用场景: 常用于去除文本中的空白行,如处理日志文件、配置文件等。 4. **匹配HTML标记的正则表达式** - 表达式: `&lt;(.*)&gt;.*|&lt;(.*) \/&gt;` - 应用场景: 用于解析简单的HTML文档,提取或移除特定的HTML标签。...

Global site tag (gtag.js) - Google Analytics