<div dir="ltr" style="text-align: justify;" trbidi="on">
<div dir="ltr" style="text-align: justify;" trbidi="on">In this tutorial, we will discuss about sort tag. The sort tag is used to sort a List using a<i><b> java.util.Comparator.</b></i> <i><b> List </b></i>and <b><i>Comparator </i></b>both passed in as the tag attribute.</p>
<p> First we create a JSP file named <i><b>sorttag.jsp</b></i> as follows.</p>
<pre class="highlight" name="code"><;%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
 pageEncoding="ISO-8859-1"%>; 
<;%@taglib prefix="s" uri="/struts-tags"%>; 
<;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">; 
<;html>; 
 <;head>; 
 <;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">; 
 <;title>;Sort Control Tag Struts2 | dineshonjava.com<;/title>; 
 <;head>; 
 
 <;body>; 
 <;h1>;<;span style="background-color: #FFFFcc">;Sort Tag Example! | dineshonjava.com 
 <;/span>;<;/h1>; 
 <;b>;List without any sorting<;/b>; 
 <;ol>; 
 <;s:iterator value="userList">; 
 <;li>; 
 <;s:property value="userId" />; , 
 <;s:property value="userName" />; , 
 <;s:property value="age" />; 
 <;/li>; 
 <;/s:iterator>; 
 <;/ol>; 
 <;table>; 
 <;tr>; 
 <;td bgcolor="#ffffcc">;<;b>;The Values Sorted by Age.<;/b>;<;br>; 
 <;s:bean name="com.dineshonjava.struts2.utility.UserAgeComprator" var="userAgeC" />; 
 <;s:sort comparator="#userAgeC" source="userList">; 
 <;ol>; 
 <;s:iterator>; 
 <;li>; 
 <;s:property value="userId" />; , 
 <;s:property value="userName" />; , 
 <;s:property value="age" />; 
 <;/li>; 
 <;/s:iterator>; 
 <;/ol>; 
 <;/s:sort>; 
 <;/td>; 
 <;td>;<;/td>; 
 
 <;td bgcolor="pink">;<;b>;The Values Sorted by Name.<;/b>;<;br>; 
 <;s:bean name="com.dineshonjava.struts2.utility.UserNameComprator" var="userNameC" />; 
 <;s:sort comparator="#userNameC" source="userList">; 
 <;ol>; 
 <;s:iterator>; 
 <;li>; 
 <;s:property value="userId" />; , 
 <;s:property value="userName" />; , 
 <;s:property value="age" />; 
 <;/li>; 
 <;/s:iterator>; 
 <;/ol>; 
 <;/s:sort>; 
 <;/td>; 
 <;/tr>; 
<;/table>; 
<;/body>; 
<;/html>; 
</pre>
<div align='center' id="ads-id"></div>
<p>The Struts mapping file <i><b>struts.xml </b></i>is as follows-</p>
<pre class="highlight" name="code"><;?xml version="1.0" encoding="UTF-8" ?>; 
<;!DOCTYPE struts PUBLIC 
 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
 "http://struts.apache.org/dtds/struts-2.0.dtd">; 
 
<;struts>; 
 <;constant name="struts.enable.DynamicMethodInvocation" value="false" />; 
 <;constant name="struts.devMode" value="false" />; 
 <;constant name="struts.custom.i18n.resources" value="myapp" />; 
 
 <;package name="default" extends="struts-default" namespace="/">; 
 <;action name="sorttag" class="com.dineshonjava.struts2.action.ControlTagAction">; 
 <;result name="success">;/sorttag.jsp<;/result>; 
 <;/action>; 
 
 <;/package>; 
 <;/struts>; 
</pre>
<p>
<b>Create action class</b></p>
<pre class="highlight" name="code">package com.dineshonjava.struts2.action; 
 
import java.util.ArrayList; 
import java.util.List; 
 
import com.dineshonjava.struts2.domain.User; 
import com.opensymphony.xwork2.ActionSupport; 
 
/** 
 * @author Dinesh Rajput 
 * 
 */ 
public class ControlTagAction extends ActionSupport{ 
 
 private static final long serialVersionUID = 1L; 
 
 private List<;User>; userList = new ArrayList<;User>;(); 
 
 public String execute() { 
 
 User user1 = new User(); 
 user1.setAge(27); 
 user1.setUserId(111); 
 user1.setUserName("Dinesh Rajput"); 
 
 User user2 = new User(); 
 user2.setAge(25); 
 user2.setUserId(222); 
 user2.setUserName("Anamika Rajput"); 
 
 User user3 = new User(); 
 user3.setAge(23); 
 user3.setUserId(333); 
 user3.setUserName("Aadesh"); 
 
 User user4 = new User(); 
 user4.setAge(21); 
 user4.setUserId(444); 
 user4.setUserName("Vinesh Rajput"); 
 
 userList.add(user1); 
 userList.add(user2); 
 userList.add(user3); 
 userList.add(user4); 
 
 return SUCCESS; 
 } 
 
 public List<;User>; getUserList() { 
 return userList; 
 } 
 
 
 public void setUserList(List<;User>; userList) { 
 this.userList = userList; 
 } 
} 
</pre>
<p>
<b>Comparator:</b><br />
<i><b>UserNameComprator.java</b></i> <br />
Create 2 Comparator classes, to sort the User’s &#8220;<b>userName</b>&#8221; and &#8220;<b>age</b>&#8221; property.</p>
<pre class="highlight" name="code">package com.dineshonjava.struts2.utility; 
 
import java.util.Comparator; 
 
import com.dineshonjava.struts2.domain.User; 
 
/** 
 * @author Dinesh Rajput 
 * 
 */ 
public class UserNameComprator implements Comparator<;User>; { 
 
 @Override 
 public int compare(User user1, User user2) { 
 return user1.getUserName().compareTo(user2.getUserName()); 
 } 
 
} 
</pre>
<p>
<b>UserAgeComprator.java</b></p>
<pre class="highlight" name="code">package com.dineshonjava.struts2.utility; 
 
import java.util.Comparator; 
 
import com.dineshonjava.struts2.domain.User; 
 
/** 
 * @author Dinesh Rajput 
 * 
 */ 
public class UserAgeComprator implements Comparator<;User>; { 
 
 @Override 
 public int compare(User user1, User user2) { 
 return user1.getAge()-user2.getAge(); 
 } 
 
} 
 
</pre>
<p>
<b>Create<i> web.xml</i> file as below.</b></p>
<pre class="highlight" name="code"><;?xml version="1.0" encoding="UTF-8"?>; 
<;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">; 
 <;display-name>;Struts2ControlTags<;/display-name>; 
 <;filter>; 
 <;filter-name>;struts2<;/filter-name>; 
 <;filter-class>; 
 org.apache.struts2.dispatcher.FilterDispatcher 
 <;/filter-class>; 
 <;/filter>; 
 <;filter-mapping>; 
 <;filter-name>;struts2<;/filter-name>; 
 <;url-pattern>;/*<;/url-pattern>; 
 <;/filter-mapping>; 
 <;welcome-file-list>; 
 <;welcome-file>;index.jsp<;/welcome-file>; 
 <;/welcome-file-list>; 
<;/web-app>; 
</pre>
<p>
Right click on the project name and click <b>Export >; WAR File</b> to create a War file. Then deploy this WAR in the Tomcat&#8217;s webapps directory. Finally, start Tomcat server and try to access </p>
<p> <b>URL <i>http://localhost:8080/doj/sorttag.</i></b></p>
<p>This will give you following screen: ;</p>
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://dineshonjava.com/wp-content/uploads/2013/08/1111111.png"/></div>
</div>
<p><b>Download Source Code</b><br />
<b><a href="https://sites.google.com/a/dineshonjava.com/dineshonjava/dineshonjava/Struts2SortTags.zip?attredirects=0&;d=1" target="_blank">Struts2SortTag.zip</a></b></p>
<p></p>
<div style="background-color: pink; border-width: thin; text-align: center;"><b><;<;<a href="https://dineshonjava.com/struts-2-generator-tag/">Previous</a> <;<; ; ; || <a href="https://dineshonjava.com/struts-2-baby-step-to-learn/">Index </a>||  ; >;>;<a href="https://dineshonjava.com/struts2-subset-tag-example/">Next</a> >;>;</b></div>
</div>
<div class="wp-post-navigation"> 
									 <div class="wp-post-navigation-pre"> 
									 <a href="https://dineshonjava.com/struts-2-generator-tag/">Previous</a> 
									 </div> 
									 <div class="wp-post-navigation-next"> 
									 <a href="https://dineshonjava.com/struts2-subset-tag-example/">Next</a> 
									 </div> 
									</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
 $.post('https://dineshonjava.com/wp-admin/admin-ajax.php', {action: 'mts_view_count', id: '371'});
});
</script>
Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…
Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…
Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…
Technology has emerged a lot in the last decade, and now we have artificial intelligence;…
Managing a database is becoming increasingly complex now due to the vast amount of data…
Overview In this article, we will explore Spring Scheduler how we could use it by…