Struts 2 “date” tag is used to format Date object in two ways :
- Custom date format (eg. “dd/MM/yyyy”).
- “nice” attribute to format date into an easy readable notations like “this date is 162 days ago”.
In this tutorial, it shows the use of Struts 2 “date” tag to format a Date object into “custom date format” and “easy readable notations”.
Create action class:
package com.dineshonjava.struts2.action; import java.util.Calendar; import java.util.Date; import com.opensymphony.xwork2.ActionSupport; /** * @author Dinesh Rajput * */ public class DataTagAction extends ActionSupport { private static final long serialVersionUID = -7744420104547018874L; private Date birthday; private Calendar caldate = Calendar.getInstance(); public String execute() { caldate.set(1983, 7, 6); birthday = caldate.getTime(); return SUCCESS; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
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>Date Data Tag Struts2 | dineshonjava.com</title> </head> <body> <h2>An example of the Date tag: </h2> <b>Birthday in Date Format(EEEE yyyy-MM-dd):</b><br/><br/> <s:date name="birthday" format="EEEE yyyy-MM-dd" /><hr> <b>Birthday in Date Format (EEEE MM/dd/yyyy hh:mm AM/PM):</b><br/><br/> <s:date name="birthday" format="EEEE MM/dd/yyyy 'at' hh:mm a" /><hr> <b>Birthday in Date Format (EEEE dd-MMM-yyyy hh:mm AM/PM) :</b><br/><br/> <s:date name="birthday" format="EEEE dd-MMM-yyyy 'at' hh:mm a" /><hr> <b> Birthday in Format (EEEE dd/MM/yyyy hh:mm) :</b><br/><br/> <s:date name="birthday" format="EEEE dd/MM/yyyy hh:mm" /><hr> <b>Birthday in Date Format(Nice):</b><br/><br/> <s:date name="birthday" format="yyyy-MM-dd" nice="true"/><hr> </body> </html>
Configuration Files
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> <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="datetag" 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/datetag.
This will give you following screen:
Download Source Code
DateDataTagExample.zip