using scriptlets or logic:xxx tags to sort is a poor approach. the data SHOULD be sorted in an ordered list in the 'backend' (in an action utility method or something). the logic:iterate or c:forEach then would only need to do what they are meant to do.
personally, i would store your hashmap minus the date into a wrapper object, say Report. this would contain 2 fields, a 'date' of type Date and 'data' of type HashMap. create each Report instance and add it to an ArrayList then use Collections.sort(myArrayList, DateComparator). you'll have to write your DateComparator. oh, and life will be easier if you use JSTL c tag-lib instead of logic.
-/a<br />certified slacker...yes, my last name is 'do' - <a href="http://www.luckycouple.com" target="_blank" rel="nofollow">luckycouple.com</a>