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:
Download Source Code
URLDataTagExample.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…