Download this Struts select option (drop down box) example – Struts-Select-Option-Example.zip

In this Struts example, you will learn how to create a HTML select option (drop down box) with Struts <html:select> and <html:option> tag. The <select> tag is used to create a select list (drop-down list); while <option> tags inside the select element define the available options in the list.

1. Folder Structure

This is the final project structure created by Maven. Please create the corresponding folders.

Struts-select-option-folder

2. Action class

Create an Action class, do nothing but forward the request.

HtmlSelectOptionAction.java


package com.mkyong.common.action;

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;

import com.mkyong.common.form.HtmlSelectOptionForm;

public class HtmlSelectOptionAction extends Action{
	
	public ActionForward execute(ActionMapping mapping,ActionForm form,
			HttpServletRequest request,HttpServletResponse response) 
        throws Exception {
		
	  HtmlSelectOptionForm htmlSelectOptionForm = (HtmlSelectOptionForm)form;
		
	  return mapping.findForward("success");
	}
	
}

3. Properties file

Create a properties file, and declare the error and label messages.

Common.properties


#error message
error.common.html.select.required = Please select a year.

#label message
label.common.html.select.name = Select a year 
label.common.html.select.button.submit = Submit
label.common.html.select.button.reset = Reset

4. ActionForm

Create a ActionForm, contains a year variable to hold the select option value.

HtmlSelectOptionForm.java


package com.mkyong.common.form;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

public class HtmlSelectOptionForm extends ActionForm{
	
	String year;

	public String getYear() {
		return year;
	}

	public void setYear(String year) {
		this.year = year;
	}

	@Override
	public ActionErrors validate(ActionMapping mapping,
	  HttpServletRequest request) {
		
	    ActionErrors errors = new ActionErrors();
	      
	    if( getYear() == null || ("".equals(getYear())))
	    {
	       errors.add("common.select.err",
	    	 new ActionMessage("error.common.html.select.required"));
	    }
	      
	    return errors;
	}
	
	@Override
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		// reset properties
		year = "";
	}

}

5. JSP Page

Use the Struts’s HTML tag <html:select> and <html:option> to create a HTML drop down list.

select.jsp

<%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>





Struts html:select example

: -- None -- 1980 1981 1982 1983 1984 1985

Get the selected drop down box value from htmlSelectOptionForm form and display it

display.jsp

<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>





Your selected year is :

6. struts-config.xml

Create a Struts configuration file and link all together.


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" 
"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">

<struts-config>

	<form-beans>
		<form-bean
			name="htmlSelectOptionForm"
			type="com.mkyong.common.form.HtmlSelectOptionForm"/>
	
	</form-beans>

	<action-mappings>
	
	        <action
			path="/SelectPage"
			type="org.apache.struts.actions.ForwardAction"
			parameter="/pages/select.jsp"/>
	
		<action
			path="/Select"
			type="com.mkyong.common.action.HtmlSelectOptionAction"
			name="htmlSelectOptionForm"
			validate="true"
			input="/pages/select.jsp"
			>	
			
			<forward name="success" path="/pages/display.jsp"/>
		</action>
	</action-mappings>

	<message-resources
		parameter="com.mkyong.common.properties.Common" />

</struts-config>

7. web.xml

Final step, create a web.xml and integrate the Struts framework.


<!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>

Access it

http://localhost:8080/StrutsExample/SelectPage.do

Struts-select-option-example1

Select a year and pressed the submit button, it will forward to

http://localhost:8080/StrutsExample/Select.do

and display the selected drop down box value.

Struts-select-option-example2