Struts 2 Url Tag Example

In this tutorial, We will discuss about the URL tag in struts2. This tag is used to create an URL and output it as a text format. It is never work by itself, but it can provides URL to other tags like <s:a> to create a hyperlink or <img> to render an image.

The url tag is responsible for generating URL strings. The advantage of this is that you can supply parameters to the tag. Let us go through an example to show the usage of url tag.

Create action classes:

package com.dineshonjava.struts2.action;

import com.opensymphony.xwork2.ActionSupport;

/**
 * @author Dinesh Rajput
 *
 */
public class DataTagAction extends ActionSupport {

 private static final long serialVersionUID = -7744420104547018874L;
 private String name;
 
 public String execute() {
  return SUCCESS;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }
  
}

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>Text Data Tag Struts2 | dineshonjava.com</title>
</head>
<body>
   <h1><span style="background-color: #FFFFcc">Text Data Tags Example!</span></h1>
   <ol>
  <li>Image URL Here:<br>
   <a href="https://www.dineshonjava.com"><img src="<s:url value="http://2.bp.blogspot.com/-rBLnvKuVDO0/UWBnJJ4n1yI/AAAAAAAADCQ/Vh_cVJ34JFw/s1600/new-logo.png" /> " /></a>
  </li>

  <li>Simple URL Here:<br>
   <a href="<s:url value="https://www.dineshonjava.com" />">Dieshonjava</a>
  </li>

  <li>
   <s:url action="URLtag.action" var="URLtag">
    <s:param name="name">Dineshonjava</s:param>
   </s:url> 
   <a href="<s:property value="#URLtag" />">URL Tag Action (via property)</a>
  </li>

  <li>
   <s:url action="URLtag.action" var="URLtag">
    <s:param name="name">Dinesh Rajput</s:param>
   </s:url> 
   <s:a href="%{URLtag}">URL Tag Action (via %)</s:a>
  </li>
 </ol>
</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="urltag" 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/urltag.

This will give you following screen:

Struts 2 Url Tag Example

Download Source Code
URLDataTagExample.zip

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

Previous
Next