<%@ 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>
The Struts mapping file struts.xml is as follows-<?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>
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;
}
}
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());
}
}
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();
}
}
<?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>

Labels: struts2