Building Forms With Struts

Building Forms With Struts

Previous Home Next

 

Here, We covers way to build forms in Struts Frameworks.When user submits request an HTML form.First, Action Servlet class looks at the field names from the HTML form after that check the properties names in the form bean.

 To create a Form using Struts Framework we need include HTML Tag library and Sub class of ActionForm.

Note:- Sub class of ActionForm must needed for building form.Without it Application will not execute and will throws exception. 

Struts Framework defines following basic input type fields in HTML tags :-
  • checkboxes
  • hidden fields
  • password input fields
  • radio buttons
  • reset buttons
  • select 
  • option
  • options
  • submit buttons
  • text input fields
  • textareas

Example :-


Directory Structure of FormTagExample in Struts 1.3 Using MyEclipse IDE




index.jsp

<%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<html:html>
<head>
<title><bean:message key="label.title"/></title>
</head>
<body>
<h3><bean:message key="label.header"/></h3>
<html:form action="/formAction">
<bean:message key="label.name"/>:
<html:text property="name" name="formForm"/><br/>
<bean:message key="label.technology"/>:
<html:text property="technology" name="formForm"/><br/>
<br/>
<html:submit><bean:message key="label.submit" /></html:submit>
<html:reset><bean:message key="label.reset" /></html:reset>
</html:form>
</body>
</html:html>

web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
 
<web-app>
  <display-name>Maven Struts Examples</display-name> 
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>
        org.apache.struts.action.ActionServlet
    </servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>
         /WEB-INF/struts-config.xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet> 
  <servlet-mapping>
       <servlet-name>action</servlet-name>
       <url-pattern>*.do</url-pattern>
  </servlet-mapping> 
</web-app>

struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
  <form-beans>
    <form-bean name="formForm" type="org.r4r.struts.FormForm"/>
  </form-beans>
  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action path="/form" type="org.apache.struts.actions.ForwardAction" parameter="/index.jsp"/>
		<action path="/formAction" type="org.r4r.struts.FormAction" name="formForm" input="/index.jsp">	
         <forward name="success" path="/success.jsp"/>
		</action>
  </action-mappings>
  <message-resources parameter="org.r4r.struts.ApplicationResources" />
</struts-config>

FormForm.java

package org.r4r.struts;

import org.apache.struts.action.ActionForm;

@SuppressWarnings("serial")
public class FormForm extends ActionForm {
	private String name;
	private String technology;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getTechnology() {
		return technology;
	}
	public void setTechnology(String technology) {
		this.technology = technology;
	}
}

FormAction.java

package org.r4r.struts;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class FormAction extends Action {
	public ActionForward execute(ActionMapping mapping,ActionForm form,
	HttpServletRequest request,HttpServletResponse response) 
	throws Exception{
		@SuppressWarnings("unused")
		FormForm passwordForm=(FormForm)form;
		return mapping.findForward("success");
	}
}

ApplicationResources.properties

#label message
label.title=Struts html:form tag example
label.header=Struts html:form tag example
label.name = User Name 
label.technology = Technology Name
label.submit = Submit
label.reset = Reset

success.jsp

<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
<title><bean:message key="label.title"/></title>
</head>
<body>
<h3><bean:message key="label.header"/></h3>
<h4><bean:message key="label.name"/>:-<bean:write name="formForm" property="name" /></h4>
<h4><bean:message key="label.technology"/>:-<bean:write name="formForm" property="technology" /></h4>
</body>
</html>

Output



Previous Home Next