Create action classes:
For this exercise, let us reuse examples given in “Data Type Conversion” chapter but with little modifications. So let us start with creating classes. Consider the following POJO class UserBean.java.
package com.dineshonjava.struts2.action; import com.opensymphony.xwork2.ActionSupport; /** * @author Dinesh Rajput * */ public class DataTagAction extends ActionSupport { private static final long serialVersionUID = -7744420104547018874L; public String execute() { return SUCCESS; } }
UserBean.java
package com.dineshonjava.struts2.bean; /** * @author Dinesh Rajput * */ public class UserBean { private String userName; private String userAge; private String userPhone; private String userAddress; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserAge() { return userAge; } public void setUserAge(String userAge) { this.userAge = userAge; } public String getUserPhone() { return userPhone; } public void setUserPhone(String userPhone) { this.userPhone = userPhone; } public String getUserAddress() { return userAddress; } public void setUserAddress(String userAddress) { this.userAddress = userAddress; } }
Create views
Let us have success.jsp with the following content:
<%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <STYLE type="text/css"> b{color: blue;} </STYLE> <title>Property Data Tag Struts2 | dineshonjava.com</title> </head> <body> <h1><span style="background-color: #FFFFcc">Property Data Tags Example!</span></h1> <s:bean name="com.dineshonjava.struts2.bean.UserBean" id="user" var="user"> <s:param name="userName">Dinesh Rajput</s:param> <s:param name="userAge">27</s:param> <s:param name="userPhone">9876543210</s:param> <s:param name="userAddress">Noida</s:param> <s:property value="%{userName}" /><br> <s:property value="%{userAge}" /><br> <s:property value="%{userPhone}" /><br> <s:property value="%{userAddress}" /><br> </s:bean> <h1><span style="background-color: #FFFFcc">Using Var in Property Data Tags Example!</span></h1> <s:property value="#user.userName" /><br> <s:property value="#user.userAge" /><br> <s:property value="#user.userPhone" /><br> <s:property value="#user.userAddress" /><br> <!-- Default value --> <h1><span style="background-color: #FFFFcc">Default Value in Property Data Tags Example!</span></h1> <s:property value="userName" default="Default Value of name" /><br> <s:property value="userAge" default="Default Value of age" /><br> <s:property value="userPhone" default="Default Value of phone" /><br> <s:property value="userAddress" default="Default Value of address" /> </body> </html>
Configuration Files
Your struts.xml should look like:
<?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="propertytag" class="com.dineshonjava.struts2.action.DataTagAction"> <result name="success">/success.jsp</result> </action> </package> </struts>
Your web.xml should look like:
<?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>Struts2DataTag</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>
Right click on the project name and click Export > WAR File to create a War file. Then deploy this WAR in the Tomcat’s webapps directory. Finally, start Tomcat server and try to access
URL http://localhost:8080/doj/propertytag.
This will give you following screen:
Download Source Code
PropertyDataTagExample.zip
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…