我用DisplayTag显示新闻列表,显示正常,但是第一页显示的是过去(假如有2003,2004,2005新闻,第一页的是2003年的新闻)的新闻,我想第一页显示当年新闻(2005年),该怎么实现? 如果数据库查询用Desc,那么第一页显示的是当日新闻,可是第一页不是asc排序,很不爽,不符合习惯.

解决方案 »

  1.   

    急啊,没时间了,有时间研究一下DisplayTag. 大家帮帮忙.
      

  2.   

    display:table 有个属性sort是用来排序的
      

  3.   

    还有,我扩展了DisplayTag,如果sort为true,一排序,链接的序号就变了.所以希望页面显示时,首先显示最后一页,而且每页都是asc排序.
      

  4.   

    去了表头不可以 空格代替吗? 你当时取数据时为什么不倒排?你为什么不用一个 Decorator?看看 DisplayTag 源代码, 看他  encode HTML 时怎么通知 抓取数据的组件的。
      

  5.   

    JSF DataTable 的 TableModel 能自定义过滤 DataModel ,对未排序的 table model 进行过滤,而不要求原数据列表排序,只过一个 类似主键的 附加 字段排序 。 DisplayTag 应该也有类似的东西吧,不知道 DisplayTag 是直接更改了原数据列表还是附加字段。
      

  6.   

    回复:humanity,倒排后,每页显示不是顺排,我也扩展了DisplayTag,现在可以了,但还不如意,进入页面首页还不是最后一页.但可以点击表头进行排序.但总不满意,我想要的就象bbs一样,一下子进入最后的页面,而且每页显示的顺序是顺排.表头用空格代替?(怎么代替,看到不表头了,往那点击,再说我不想要表头就能:默认显示最后一页,而且每页是顺排)
      

  7.   

    我也做了个Decorator,但不知在Decorator里怎么对每一页进行排序,如果取数据时倒排,得在Decorator里,对每页进行重新排序(变成顺序才行)
      

  8.   

    真的得不到解决了吗?encode HTML代码在那个类中?
      

  9.   

    这种情况一般是分两个个字段排序啊,年和时间分开排序,先对年用DESC,再对时间ASC,而且最好在数据苦就排好序,不要单独用displaytag排序,这样效率可以高很多。
      

  10.   

    不对,如果都是2005年,对年desc然后对时间asc排序后结果还和Displaytag一样.
    比如一页有15条新闻.现在有5页新闻.我想在第一页把最新的15条新闻放在第一页,然后,把第一页的新闻按asc排序.Displaytag好像不支持.
      

  11.   

    这没有什么难的啊,你在数据库查出来还是按你原来设计的,就是年desc,时间asc,然后在用Displaytag显示时,可以采用page的排序的方式,那么displaytag就只是对第一页进行排序。相关的几个关键属性是:defaultorder="ascending", defaultsort=""(具体值是排序的列索引), sort="page"。