This example shows how to use struts 2 tags:
Struts 2 : Check box listStruts 2: SelectStruts 2: FileStruts 2: Combo BoxStruts 2: Option Transfer SelectStruts 2: Updown SelectStruts 2: Double Select
(All these tags are available in result.jsp)
Struts 2: iteratorStruts 2: If else
(These tags are available in iterator_tag.jsp )
Struts 2: Dynamic Dispatch
( These tags examples are available in dynamic_dispatch_demo.jsp)
Struts 2: Action Message
( These tags examples are available in success.jsp)
1) Create a Dynamic Web Project2) Create the following jsp pages under WebContent folder- index.jsp
- result.jsp
- dynamic_dispatch_demo.jsp
- dispatch_success.jsp
- dispatch_demo.jsp
- iterator_tag.jsp
- success.jsp
3) Create the Action Class in src folder- DynamicDispatchAction.java
- IteratorTagAction.java
- SaveUserAction.java
- ShowTagsAction.java
- UserDispatchAction.java
4) Map the actions and jsp in struts.xml under src folder
index.jsp
<html>
<body>
<a href="showTags">Click here to view tags demo</a><br>
<a href="dispatch_demo.jsp">Click here to view Dispatch Action demo</a><br>
<a href="iteratorTag">Iterator TAG demo</a><br>
</body>
</html>
result.jsp
<%@ taglib uri="/struts-tags" prefix="s"%>
<html><body>
<h1>Welcome to Struts2 tags demo</h1> <s:actionerror />
<s:form action="saveMyUser"> <s:textfield name="userName" label="UserName" /> <br> <s:password name="password" label="Password" /> <br> <s:textarea name="address" label="Address" /> <br> <s:radio name="status" label="Status" list="{'Approved','UnApproved'}" /> <br>
<s:radio name="country" label="Country" list="countries" value="{'UK'}" /> <br>
<s:checkboxlist list="countries" name="countryCheck" label="CountrWithCheckbox" value="{'USA','Srilanka'}"></s:checkboxlist> <s:label name="hello" value="Hello How are you"></s:label>
<s:select list="countries" name="countrySelect" label="CountryWithSelectBox"></s:select> <br>
<s:file name="myFIle" label="SelectFile"></s:file>
<s:combobox list="countries" name="comboBox" label="CountryWithComboBox"></s:combobox>
<s:optiontransferselect label="Employee Records" name="leftSideEmployeeRecords" leftTitle="LeftSide" rightTitle="selected employees" list="{'Deepak Kumar', 'Sushil Kumar','Vinod Kumar','Deepak Monthy', 'Deepak Mihanti', 'Sushil Kumar', 'Ravi Kant Kumar'}" headerKey="headerKey" headerValue="--- Please Select ---" doubleName="rightSideEmployeeRecords" doubleList="{'Amar Deep Patel', 'Amit Kumar','Chandan Kumar', 'Noor Kumar','Tammana Kumari'}" doubleHeaderKey="doubleHeaderKey" doubleHeaderValue="--- Please Select ---" />
<s:updownselect list="#{'01':'January','02':'February','03':'March','04':'April','05':'May','06':'June','07':'July','08':'August','09':'September','10':'October','11':'November','12':'December'}" name="daysname" headerKey="1" headerValue="-- Please Select --" moveUpLabel="Move Up" moveDownLabel="Move Down" selectAllLabel="Select All" />
<s:doubleselect label="Select Item" headerValue="--- Please Select ---" headerKey="1" list="{'Color','Fruits','items'}" doubleName="dishes" doubleList="top == 'Color' ? {'Black','Green','White', 'Yellow','Red','Pink'} : (top == 'Fruits' ? { 'Apple','Banana','Grapes','Mango'}: {'pen','laptop','mobile'})" />
<s:submit value="SaveUser"></s:submit> </s:form>
</body></html>
dispatch_demo.jsp
<%@ taglib uri="/struts-tags" prefix="s"%><html><body>
<s:form action="saveUser"> <s:submit value="SaveUser"/> </s:form> <s:form action="updateUser"> <s:submit value="UpdateUser"/> </s:form> <s:form action="deleteUser"> <s:submit value="DeleteUser"/> </s:form> <s:form action="listUser"> <s:submit value="ListUser"/> </s:form> </body></html>
dynamic_dispatch_demo.jsp
<%@ taglib uri="/struts-tags" prefix="s"%><html><body>
<s:form action="saveUser"> <s:submit value="SaveUser"/> </s:form> <s:form action="updateUser"> <s:submit value="UpdateUser"/> </s:form> <s:form action="deleteUser"> <s:submit value="DeleteUser"/> </s:form> <s:form action="listUser"> <s:submit value="ListUser"/> </s:form> </body></html>
dispatch_success.jsp
<html><body>
<h1>Request is dispatched successfully</h1></body></html>
success.jsp
<%@ taglib uri="/struts-tags" prefix="s"%><html><body> <h1> Data is saved successfully</h1> <s:actionmessage/></body></html>
ShowTagsAction.java
import java.util.ArrayList;import java.util.List;
public class ShowTagsAction { List<String> countries; List<User> userList; public List<User> getUserList() { return userList; }
public void setUserList(List<User> userList) { this.userList = userList; } public String execute() throws Exception { countries = new ArrayList<String>(); countries.add("India"); countries.add("USA"); countries.add("UK"); countries.add("Kanada"); countries.add("Srilanka"); return "success"; }
public List<String> getCountries() { return countries; }
public void setCountries(List<String> countries) { this.countries = countries; }}
UserDispatchAction.java
public class UserDispatchAction {
public String save(){
System.out.println("save method of DispatchAction ");
return "success";
}
public String delete(){
System.out.println("delete method of DispatchAction ");
return "success";
}
public String update(){
System.out.println("update method of DispatchAction ");
return "success";
}
public String list(){
System.out.println("list method of DispatchAction ");
return "success";
}
}
DynamicDispatchAction.java
public class DynamicDispatchAction {
public String save(){
System.out.println("save method of DispatchAction ");
return "success";
}
public String delete(){
System.out.println("delete method of DispatchAction ");
return "success";
}
public String update(){
System.out.println("update method of DispatchAction ");
return "success";
}
public String list(){
System.out.println("list method of DispatchAction ");
return "success";
}
}
SaveUserAction.java
import java.util.ArrayList;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
public class SaveUserAction extends ActionSupport{
private String userName;
private String password;
private String address;
List<String> countries;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String execute() throws Exception {
System.out.println("UserName = "+userName);
System.out.println("Password = "+password);
System.out.println("Address = "+address);
if(userName.equals(password)){
List<String> messages = new ArrayList<String>();
messages.add("Data sent to DB");
setActionMessages(messages);
return "success";
}else{
List<String> errors = new ArrayList<String>();
errors.add("Data is invalid");
setActionErrors(errors);
countries = new ArrayList<String>();
countries.add("India");
countries.add("USA");
countries.add("UK");
countries.add("Kanada");
countries.add("Srilanka");
return "input";
}
}
public List<String> getCountries() {
return countries;
}
public void setCountries(List<String> countries) {
this.countries = countries;
}
}
IteratorTagAction.java
import java.util.ArrayList;
import java.util.List;
public class IteratorTagAction {
List<String> countries;
List<User> userList;
public String execute() throws Exception {
countries = new ArrayList<String>();
countries.add("India");
countries.add("USA");
countries.add("UK");
countries.add("Canada");
countries.add("Srilanka");
userList = new ArrayList<User>();
User user = new User();
user.setFirstName("Venkata");
user.setLastName("reddy");
user.setUserName("vreddy");
user.setSalary(400);
userList.add(user);
user = new User();
user.setFirstName("Ram");
user.setLastName("Mohan");
user.setUserName("rmohan");
user.setSalary(500);
userList.add(user);
user = new User();
user.setFirstName("Amod");
user.setLastName("Mudholkar");
user.setUserName("aamod");
user.setSalary(600);
userList.add(user);
return "success";
}
public List<String> getCountries() {
return countries;
}
public void setCountries(List<String> countries) {
this.countries = countries;
}
public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
}
class User{
private Integer salary;
private String firstName;
private String lastName;
private String userName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Integer getSalary() {
return salary;
}
public void setSalary(Integer salary) {
this.salary = salary;
}
}
struts.xml
<?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>
<package name="default" namespace="/" extends="struts-default">
<action name="showTags" class="ShowTagsAction">
<result>/result.jsp</result>
</action>
<action name="saveMyUser" class="SaveUserAction">
<result>/success.jsp</result>
<result name="input">/result.jsp</result>
</action>
<action name="saveUser" class="UserDispatchAction" method="save">
<result>/dispatch_success.jsp</result>
</action>
<action name="updateUser" class="UserDispatchAction" method="update">
<result>/dispatch_success.jsp</result>
</action>
<action name="deleteUser" class="UserDispatchAction" method="delete">
<result>/dispatch_success.jsp</result>
</action>
<action name="listUser" class="UserDispatchAction" method="list">
<result>/dispatch_success.jsp</result>
</action>
<action name="iteratorTag" class="IteratorTagAction">
<result>/iterator_tag.jsp</result>
</action>
</package>
</struts>
web.xml
<?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_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Struts2Example2</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</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>