Class SortIteratorTag
- All Implemented Interfaces:
- jakarta.servlet.jsp.tagext.BodyTag,- jakarta.servlet.jsp.tagext.IterationTag,- jakarta.servlet.jsp.tagext.JspTag,- jakarta.servlet.jsp.tagext.Tag,- Serializable
A Tag that sorts a List using a Comparator both passed in as the tag attribute. If 'var' attribute is specified, the sorted list will be placed into the PageContext attribute using the key specified by 'var'. The sorted list will ALWAYS be pushed into the stack and poped at the end of this tag.
- var (String) - if specified, the sorted iterator will be place with this name under page context
- source (Object) - the source for the sort to take place (should be iteratable) else JspException will be thrown
- comparator* (Object) - the comparator used to do sorting (should be a type of Comparator or its decendent) else JspException will be thrown
 
 USAGE 1:
 <s:sort comparator="myComparator" source="myList">
      <s:iterator>
      <!-- do something with each sorted elements -->
      <s:property value="..." />
      </s:iterator>
 </s:sort>
 USAGE 2:
 <s:sort var="mySortedList" comparator="myComparator" source="myList" />
 <%
    Iterator sortedIterator = (Iterator) pageContext.getAttribute("mySortedList");
    for (Iterator i = sortedIterator; i.hasNext(); ) {
      // do something with each of the sorted elements
    }
 %>
 
 - 
Field SummaryFields inherited from class jakarta.servlet.jsp.tagext.BodyTagSupportbodyContentFields inherited from class jakarta.servlet.jsp.tagext.TagSupportid, pageContextFields inherited from interface jakarta.servlet.jsp.tagext.BodyTagEVAL_BODY_BUFFERED, EVAL_BODY_TAGFields inherited from interface jakarta.servlet.jsp.tagext.IterationTagEVAL_BODY_AGAINFields inherited from interface jakarta.servlet.jsp.tagext.TagEVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidProvide a mechanism to clear tag state, to handle servlet container JSP tag pooling behaviour with some servers, such as Glassfish.intdoEndTag()intvoidsetComparator(String comparator) voidsetPerformClearTagStateForTagPoolingServers(boolean performClearTagStateForTagPoolingServers) Request that the tag state be cleared duringStrutsBodyTagSupport.doEndTag()processing, which may help with certain edge cases with tag logic running on servers that implement JSP Tag Pooling.voidvoidMethods inherited from class org.apache.struts2.views.jsp.StrutsBodyTagSupportfindString, findValue, findValue, getBody, getPerformClearTagStateForTagPoolingServers, getStack, release, toStringMethods inherited from class jakarta.servlet.jsp.tagext.BodyTagSupportdoAfterBody, doInitBody, getBodyContent, getPreviousOut, setBodyContentMethods inherited from class jakarta.servlet.jsp.tagext.TagSupportfindAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValueMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface jakarta.servlet.jsp.tagext.TaggetParent, setPageContext, setParent
- 
Constructor Details- 
SortIteratorTagpublic SortIteratorTag()
 
- 
- 
Method Details- 
setComparator
- 
setSource
- 
setVar
- 
setPerformClearTagStateForTagPoolingServerspublic void setPerformClearTagStateForTagPoolingServers(boolean performClearTagStateForTagPoolingServers) Description copied from class:StrutsBodyTagSupportRequest that the tag state be cleared duringStrutsBodyTagSupport.doEndTag()processing, which may help with certain edge cases with tag logic running on servers that implement JSP Tag Pooling. Note: Even though the Tag classes extend this classStrutsBodyTagSupport, and this methodStrutsBodyTagSupport.setPerformClearTagStateForTagPoolingServers(boolean)exists in the method hierarchy, the JSP processing requires us to explicitly override it in every Tag class in order for the Tag handler method to be visible to the JSP processing. Defining a setter in the superclass alone is insufficient (results in "Cannot find a setter method for the attribute").See StrutsBodyTagSupport.clearTagStateForTagPoolingServers()for additional details. Warning: Setting this value to true may allow for the desired behaviour, but doing so may violate the JSP specification. Set to true at your own risk.- Overrides:
- setPerformClearTagStateForTagPoolingServersin class- StrutsBodyTagSupport
- Parameters:
- performClearTagStateForTagPoolingServers- true if tag state should be cleared, false otherwise.
 
- 
doStartTagpublic int doStartTag() throws jakarta.servlet.jsp.JspException- Specified by:
- doStartTagin interface- jakarta.servlet.jsp.tagext.Tag
- Overrides:
- doStartTagin class- jakarta.servlet.jsp.tagext.BodyTagSupport
- Throws:
- jakarta.servlet.jsp.JspException
 
- 
doEndTagpublic int doEndTag() throws jakarta.servlet.jsp.JspException- Specified by:
- doEndTagin interface- jakarta.servlet.jsp.tagext.Tag
- Overrides:
- doEndTagin class- StrutsBodyTagSupport
- Throws:
- jakarta.servlet.jsp.JspException
 
- 
clearTagStateForTagPoolingServersprotected void clearTagStateForTagPoolingServers()Description copied from class:StrutsBodyTagSupportProvide a mechanism to clear tag state, to handle servlet container JSP tag pooling behaviour with some servers, such as Glassfish.Usage: Override this method in descendant classes to clear any state that might cause issues should the servlet container re-use a cached instance of the tag object. If the descendant class does not declare any new field members then it should not be strictly necessary to call this method there. Typically that means calling the ancestor's ComponentTagSupport.clearTagStateForTagPoolingServers()method first, then resetting instance variables at the current level to their default state.Note: If the descendant overrides StrutsBodyTagSupport.doEndTag(), and does not call super.doEndTag(), then the descendant should call this method in the descendant doEndTag() method to ensure consistent clearing of tag state.- Overrides:
- clearTagStateForTagPoolingServersin class- StrutsBodyTagSupport
 
 
-