Struts 2 Property Tag Example

In this tutorial, we are going to describe the property tag. The property tag is a generic tag that is used to get the property of a value, which will default to the top of the stack if none is specified.

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



<<Previous <<   || Index ||   >>Next >>





No comments:

Post a Comment