Java

如果一个页面中用了两个以上displaytag,需要注意的分页问题

我在页面上用了两个displayTag。 第一个的记录比较多。当在浏览器转到第二页时,出现下面这个异常: java.lang.IndexOutOfBoundsException: fromIndex = -10 而第二个的记录数为0 分析:displayTag翻页时,页面上所有的displayTag元素都要翻一页            现在第二个displayTag记录数为零,根本不支持翻页操作,所以出现异常 不过,如果第二个记录数不为0,而为1(仍不足够分页)。这时如果第一个翻页,第二个也会跟着翻,不会出现异常,只不过什么也不显示 最终解决办法:     对页面中的每个表格,先判断它的记录是否为0,如果为0则不使用displayTag

Spring中获得Hibernate Session的方法

HibernateDaoSupport这个类有一个方法叫做 getHibernateTemplate(), 你如果经常使用这个方法,就不会对HibernateDaoSupport类陌生了 HibernateDaoSupport有一个方法叫做getSession(),正是这个方法可以获得Session

Could not format discriminator value to SQL string

   [hibernate] Could not format discriminator value to SQL string…异常    如果discriminator value不是String类型就可能出这种错误,解决办法是在 Class.hbm.xml中的class元素处加上属性:discriminator-value="not null"

利用 pager-taglib :增、删记录后如何回到分页了的记录列表

    如果页面上存在一个按时间排序的记录列表,当我们增加了一条记录,应该跳转到记录的最后面,以看到刚刚增加的记录;当我们删除了一条记录,应该跳转到被删除记录的原来差不多的地方,以方便用户继续操作。    如果列表是分页的,那么增加记录后应该是跳到最后一页;对于删除记录,删除前应把当前页码记下,删除后跳转到  <b> Min(最后一页,删除前的页码) </b>     可以用 pager-taglib 来实现这两种机制。首先,它可以分页,可以让我们免于自己实现分页;其次,利用它分页后想跳转到某页只须在 url 里加上 pager.offset = 某页 即可,方便程序的实现。      具体的实现方法:       1.增加记录         a.用户提交“增加记录”的表单,表单域中需包含隐藏变量:“每页记录数”         b.服务器增加记录后,从数据库中算出记录的总数         c.利用每页记录数和记录总数算出最后一页的pager.offset值         d.跳转到该页       2.删除记录         a.用户提交“删除记录”的表单,表单域中需包含隐藏变量:“每页记录数”和“当前页码”         b.服务器删除记录后,从数据库中算出记录的总数         c.利用每页记录数和记录总数算出最后一页的pager.offset值         d.求出 最后一页的页码 和 删除前的页码 中间的较小值         e.跳转到这个较小值所代表的页面    DisplayTag为什么不行? 因为利用它分页后如果想跳到某页,在url里要加上的东西是不确定的,URL中它的分页参数名值对 有时是 d-48098-p = 某页, 有时是  d-23456-p …

利用 pager-taglib :增、删记录后如何回到分页了的记录列表 Read More »