7. Copy the in quotes code and add it after this line in your MyDisplayTag
Integer pageNumberParameter = requestHelper .getIntParameter(encodeParameter(TableTagParameters.PARAMETER_PAGE));
this.pageNumber = (pageNumberParameter == null) ? 1
: pageNumberParameter.intValue();
“HttpServletRequest request = (HttpServletRequest) this.pageContext
.getRequest();
HttpSession session = request.getSession();
// get values from current request
Integer requestPageNum = new Integer(this.pageNumber);
int sortedColumn = -1; // list index starts with 0, so set it to -1
Integer sortColumnParameter = requestHelper
.getIntParameter(encodeParameter(TableTagParameters.PARAMETER_SORT));
sortedColumn = (sortColumnParameter == null) ? this.defaultSortedColumn
: sortColumnParameter.intValue();
if (sortColumnParameter == null) {
sortColumnParameter = new Integer(sortedColumn);
}
// String requestSortedColumn = "" + sortedColumn; //column index of
// sorted column
SortOrderEnum paramOrder = SortOrderEnum
.fromCode(requestHelper
.getIntParameter(encodeParameter(TableTagParameters.PARAMETER_ORDER)));
Boolean requestOrder = new Boolean(
SortOrderEnum.DESCENDING != paramOrder); // sorting order ASC
// or DSC. true==asc
// and false==dsc
String myPageNumber = (String) session.getAttribute(this.uid
+ "pagenum");
String mySortColumn = (String) session.getAttribute(this.uid
+ "sortedColumn");
String mySortOrder = (String) session.getAttribute(this.uid
+ "sortedOrder");
if (myPageNumber == null) {
myPageNumber = requestPageNum.toString();
}
if (mySortColumn == null) {
mySortColumn = sortColumnParameter.toString();
}
if (mySortOrder == null) {
mySortOrder = requestOrder.toString();
}
String myDisplayTag_UseSessionValues = (String) session
.getAttribute("myDisplayTag_UseSessionValues");
session.removeAttribute("myDisplayTag_UseSessionValues");
if ("true".equals(myDisplayTag_UseSessionValues)) {
//
// This means we should use the values from Session
//
requestPageNum = new Integer(myPageNumber);
sortColumnParameter = new Integer(mySortColumn);
requestOrder = new Boolean(mySortOrder);
this.pageNumber = requestPageNum.intValue();
}
// put current request values into session for next time.
session.setAttribute(this.uid + "pagenum", requestPageNum.toString());
session.setAttribute(this.uid + "sortedColumn", sortColumnParameter
.toString());
session.setAttribute(this.uid + "sortedOrder", requestOrder.toString());
session.setAttribute("uniqueTableId", this.uid);”
And the last thing you need to do is put a flag in session in Action class’s method in when the user leaves MyDisplayTag.
This is not the best way of doing it if you have more time but it is quick fix.
1 comment:
Hello !
I've tried to make changes in my displaytag, but I had no success! Could please share your displaytag.jar changed with me ?
thanks a lot!
Regards,
Robert
Post a Comment