Thanks again! Henri Yandell <[EMAIL PROTECTED]> wrote: Yep, that's a good intro. The quickest is:
http://www.manning-source.com/books/bayern/bayern_apxA.pdf It's the appendix to Manning's JSTL in Action and is akin to a JSTL in a Nutshell pocket reference. Hen On Fri, 5 Mar 2004, as as wrote: > Thank you! > > "A.White" wrote:I'm reading a really good book at the moment, "JSTL : Practical Guide > for JSP Programmers" > > -----Original Message----- > From: as as [mailto:[EMAIL PROTECTED] > Sent: 05 March 2004 13:48 > To: Struts Users Mailing List > Subject: RE: Sorting table columns in jsp using struts > > > Henri, > > Thanks for the explanatory smaples.The syntax below seems JSTL.... > > > Any quick intro I read on JSTL... > Thanks > > Henri Yandell wrote: > > Just to show how easy it can be with beanutils: > > display_categories.do points to a struts action that preloads like: > > ***** > List list = new ArrayList(); > list.addAll( DummyDao.getAllCategories() ); > String sortBy = request.getParameter("sortBy"); > if(sortBy != null) { > BeanComparator comparator = new BeanComparator(sortBy); > Collections.sort( list, comparator ); } request.setAttribute( > "categories", list ); return mapping.findForward("success"); > ***** > > and the jsp page that success points to contains: > > **** > > > name > description > > > > > > > > > > > **** > > where Category has 'name' and 'description' as properties. This handles > things with natural sorting. Doing the reverse sort used to be pretty > easy, but is harder now that we separate the view and model [as the > model wants to record view-state, or maybe the view wants to record > model-view state...ugh]. > > The trick is by having: > > if(reverse) { > comparator = new ReverseComparator(comparator); > } > > after the BeanComparator line. The only complication is where you decide > to store reverse. You can use the session, or as you'll probably want > little arrows showing the sort direction, you can write it into the > column-header with '?sortBy=name&reverse=true'. This can be tricky and > probably involves the Action storing things in the request scope for the > jsp to discover later. > > Anyway, I assume the display-tag library contains this pretty much, but > Comparators are lovely so it can't hurt to babble on about them :) > > Hen > > On Thu, 4 Mar 2004, as as wrote: > > > Thanks in advance. > > Sam > > (I am currently truying out display tag though, as per Ashish) > > > > Henri Yandell wrote: > > > > I imagine display tags does it for you mostly if you go that way, else > > > I'll knock up an example tonight. Finally getting back into taglibs > > and jsp :) > > > > Hen > > > > On Thu, 4 Mar 2004, as as wrote: > > > > > thanks much. > > > sample code by any cance? > > > Thank you! > > > > > > ~~Sam > > > > > > Henri Yandell wrote: > > > > > > BeanUtils' BeanComparator is a useful way to do the sorting by the > > > way, and will be in your classpath if you're using Struts [depending > > > > on version]. > > > > > > Also ReverseComparator in Commons Collections. Between them you can > > > write a nice abstract table sorting system. > > > > > > Hen > > > > > > On Thu, 4 Mar 2004, as as wrote: > > > > > > > Wendy, > > > > > > > > Thanks for the quick reply. > > > > books is a session attribute (request.setParameter("books",books) > > > > I retrieve books from database - Book.java > > > > so books is a "List" object. > > > > Will try your approach and post back the results > > > > Thanks, > > > > Sam~~ > > > > > > > > > > > > Wendy Smoak wrote: > > > > Sam wrote: > > > > > Any clues on best easy ways to do table column sorting my rows > > > > > in the table are generated as follows using as below. > > > > > > > > I do it on the server side, holding the items to be sorted in a > > > > Map and creating a new Map passing a Comparator to the constructor > > > > > to get the new order. Then when you're back on the JSP iterating > > > > over it, the items are in the "correct" order. > > > > > > > > Map accountMap = (Map) session.getAttribute( "accountMap" ); Map > > > > newMap = new TreeMap( new CostCenterComparator() ); newMap.putAll( > > > > > accountMap ); session.setAttribute( "accountMap", newMap ); > > > > > > > > [Comments welcome, I'm not sure this is the best way to do it, but > > > > > it works...] > > > > > > > > What type of Collection is 'books' in your example? > > > > > > > > -- > > > > Wendy Smoak > > > > Application Systems Analyst, Sr. > > > > ASU IA Information Resources Management > > > > > > > > ------------------------------------------------------------------ > > > > --- > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > > > --------------------------------- > > > > Do you Yahoo!? > > > > Yahoo! Search - Find what you're looking for faster. > > > > > > > > > -------------------------------------------------------------------- > > > - > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > --------------------------------- > > > Do you Yahoo!? > > > Yahoo! Search - Find what you're looking for faster. > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------- > > Do you Yahoo!? > > Yahoo! Search - Find what you're looking for faster. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------- > Do you Yahoo!? > Yahoo! Finance: Get your refund fast by filing online > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > --------------------------------- > Do you Yahoo!? > Yahoo! Search - Find what you’re looking for faster. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------- Do you Yahoo!? Yahoo! Search - Find what you’re looking for faster.