I am sure we have all looked at this before.  I locally patched the latest
cvs version to solve a problem I encountered while applying this library at
work.

I wanted to bring them to the dev group before I commit the change.  Sound
cool?

This patch will fix the bug where you can't page through a sorted column.
Here are the changes I made:


// UPDATE 1  -- check for the paging parameter.  If it exists, don't attempt
to overwrite it.

TableTag.java:  line 739


// UPDATE 2 --  build a separate paging url as a concatenation of the
requestURI and paging parms if present (page, sort and order)

TableTag.java 1351

The diff is pasted below.  This was one of the refactorings I did last year
on this tag.  It doesn't look like I am going to check in the stuff I did
then, but try to incorporate it into what ever we have going forward.


c:\cvsnt\cvs.exe diff -r HEAD TableTag.java
Index: TableTag.java
===================================================================
RCS file:
/cvsroot/displaytag/displaytag/src/org/apache/taglibs/display/TableTag.java,
v
retrieving revision 1.12
diff -r1.12 TableTag.java
739c739
<                 if
(!prop.getProperty("sort.behavior").equalsIgnoreCase("page")) {
---
>                 if
(!prop.getProperty("sort.behavior").equalsIgnoreCase("page") &&
req.getParameter("page") == null) {
1351,1361c1351,1358
<         String url = this.requestURI;
<         if (url == null) {
<             url = req.getRequestURI();
<         }
< //      url += req.getQueryString();
<
<         // flag to determine if we should use a ? or a &
<         int index = url.indexOf('?');
<         String separator = "";
<         if (index == -1) {
<             separator = "?";
---
>         String url = this.requestURI == null ?
>             req.getRequestURI() : this.requestURI;
>
>         String separator = url.indexOf('?') == -1 ? "?" : "&";
>
>         StringBuffer pagingUrl = new StringBuffer(url).append(separator);
>         if(this.sortColumn > -1) {
>             pagingUrl.append("sort=").append(this.sortColumn).append("&");
1363,1364c1360,1361
<         else {
<             separator = "&";
---
>         if(req.getParameter("order")!=null) {
>             pagingUrl.append("order=").append((this.sortOrder ==
TableTag.SORT_ORDER_ASCEENDING ?"asc":"dec")).append("&");
1387c1384
<             buf.append(helper.getPageNavigationBar(url + separator +
"page={0,number,#}"));
---
>
buf.append(helper.getPageNavigationBar(pagingUrl.append("&page={0,number,#}"
).toString()));

CVS command finished execution




Ben



-------------------------------------------------------
This SF.Net email sponsored by: Parasoft
Error proof Web apps, automate testing & more.
Download & eval WebKing and get a free book.
www.parasoft.com/bulletproofapps1
_______________________________________________
displaytag-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/displaytag-devel

Reply via email to