Struts 2 Bean Tag is helpful for assigning a bean reference to the JSP page. Using the s:param attribute, you can pass the values to the bean reference and set the values. After this tag is executed, you can use the bean instance throughout the page.
1. Action Class and Bean
Struts2HelloWorldAction.java
package javabeat.net.struts2; public class Struts2HelloWorldAction { private String userName; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String execute(){ return "success"; } }
UserDetails.java
package javabeat.net.struts2; public class UserDetails { private String name; private String city; public UserDetails(){} public UserDetails(String... args){ this.name = args[0]; this.city = args[1]; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } }
2. Bean Tag Example
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Struts 2 Bean Tag Example </title> </head> <body> <s:bean name="javabeat.net.struts2.UserDetails" var="users"> <s:param name="name">Rahul</s:param> <s:param name="city">Chennai</s:param> </s:bean> <s:property value="#users.name" /> , <s:property value="#users.city" /> </body> </html>
3. 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.devMode" value="true" /> <package name="tags" extends="struts-default"> <action name="beantag" class="javabeat.net.struts2.Struts2HelloWorldAction" method="execute"> <result name="success">/BeanTag.jsp</result> </action> </package> </struts>
4. Bean Tag Demo
Run the bean tag example by accessing the URL http://localhost:8080/Struts2App/beantag.