Struts HTML Tag Library
Struts HTML tag library provides tags which are used to create input forms and HTML user interfaces. The tags in the Struts HTML library form a bridge between a JSP view and the other components of a Web application. Since a dynamic Web application often depends on gathering data from a user, input forms play an important role in the Struts framework. Consequently, the majority of the HTML tags involve HTML forms.
Syntax to use Struts HTML tag library
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
< html:text >
< html:text > -renders a text input field.Single line input field will return a value typed in the input box UI to server.ActionForm bean contains the corresponding property to hold the text value.
Example Code for < html:text >
1.Create an Jsp page and name it as text.jsp.It is the Welcome page for a user.
text.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib prefix="html" uri="http://jakarta.apache.org/struts/tags-html" %> <%@taglib prefix="bean" uri="http://jakarta.apache.org/struts/tags-bean" %> < html> < head> < title> HTML Text example </title> < head> < body> < h1 > Struts html:text example </h1> < html:form action="/text"> < b> Enter First Name:</b> < html:text property="fname"/> < br> < b> Enter Last Name:</b> < html:text property="lname"/> < br> < html:submit value="Submit"/> < html:reset value="Reset"/> </html:form> </body> </html>
2.Create a Form bean.Form bean is used to hold the properties of the submitted form which is a sub class of ActionForm.Here we have two properties to hold in tha form bean “fname” and “lname” to hold First name and Last Name.
textform.java
package com.myapp.struts; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; public class textform extends org.apache.struts.action.ActionForm { private String fname; private String lname; public String getFname() { return fname; } public void setFname(String fname) { this.fname=fname; } public String getLname() { return lname; } public void setLname(String lname) { this.lname = lname; } public textform() { super(); } }
3.Simple Action class textaction.java which is a sub class of Action class used to process the user’s request.In this class we check for null values entered in the input field and set their respective error message.
textaction.java
package com.myapp.struts; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionForward; public class testaction extends org.apache.struts.action.Action { private final static String SUCCESS = "success"; public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { textform formBean=(textform)form; String fname=formBean.getFname(); String lname=formBean.getLname(); if(fname.equals("")) formBean.setFname("< span style='color:red'< first name not given</span<"); if(lname.equals("")) formBean.setLname("< span style='color:red'< Last name not given</span<"); return mapping.findForward(SUCCESS); } }
4.Create or modify struts config file struts-config.xml with action mappings.Struts-config file contains the information about the configuration of the struts framework to the application.It contains the action mappings which helps to select Action,ActionForm and other information for specific user’s request’s.
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> < struts-config> < form-beans> < form-bean name="textform" type="com.myapp.struts.textform"/> </form-beans> < action-mappings> < action name="textform" path="/text" scope="request" type="com.myapp.struts.textaction" validate="false"> < forward name="success" path="/textoutput.jsp"/> </action> </action-mappings> </struts-config>
5.Create another simple Jsp page textoutput.jspwhich is for displaying the output Full Name.If any of the input field is empty error message is displayed.
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %> < html> < head> < meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> < title> Text OutPut page</title> </head> < body> < h3> Full Name is: < bean:write name="textform" property="fname" filter="false"/> < bean:write name="textform" property="lname" filter="false"/> </h3> </body> </html>
6.Building and running the application
Output
Access page:http://localhost:8080/text/
also read: