US State Helper

Here is an example of a simple US State view helper which can be used to create a state pull-down for your stripes application.

The StateHelper bean:

 
/** 
* StateHelper provides a list of states to stripes. 
* 
*/ 
package com.app.helper; 

import java.util.ArrayList; 
import java.util.List; 

/** 
* This view helper returns a list of states 
* 
*/ 
public class StateHelper { 

/** 
* Objects are returned of type State 
*/ 
public class State { 
private String code; 
private String name; 
protected State(String code, String name) { 
this.code=code; 
this.name=name; 
} 
public String getCode() { 
return code; 
} 
public String getName() { 
return name; 
} 
} 

private List<State> states = null; 

public StateHelper() { 
states = new ArrayList<State>(51); 
states.add(new State("AL","Alabama")); 
states.add(new State("AK","Alaska")); 
states.add(new State("AZ","Arizona")); 
states.add(new State("AR","Arkansas")); 
states.add(new State("CA","California")); 
states.add(new State("CO","Colorado")); 
states.add(new State("CT","Connecticut")); 
states.add(new State("DE","Delaware")); 
states.add(new State("DC","Dist of Columbia")); 
states.add(new State("FL","Florida")); 
states.add(new State("GA","Georgia")); 
states.add(new State("HI","Hawaii")); 
states.add(new State("ID","Idaho")); 
states.add(new State("IL","Illinois")); 
states.add(new State("IN","Indiana")); 
states.add(new State("IA","Iowa")); 
states.add(new State("KS","Kansas")); 
states.add(new State("KY","Kentucky")); 
states.add(new State("LA","Louisiana")); 
states.add(new State("ME","Maine")); 
states.add(new State("MD","Maryland")); 
states.add(new State("MA","Massachusetts")); 
states.add(new State("MI","Michigan")); 
states.add(new State("MN","Minnesota")); 
states.add(new State("MS","Mississippi")); 
states.add(new State("MO","Missouri")); 
states.add(new State("MT","Montana")); 
states.add(new State("NE","Nebraska")); 
states.add(new State("NV","Nevada")); 
states.add(new State("NH","New Hampshire")); 
states.add(new State("NJ","New Jersey")); 
states.add(new State("NM","New Mexico")); 
states.add(new State("NY","New York")); 
states.add(new State("NC","North Carolina")); 
states.add(new State("ND","North Dakota")); 
states.add(new State("OH","Ohio")); 
states.add(new State("OK","Oklahoma")); 
states.add(new State("OR","Oregon")); 
states.add(new State("PA","Pennsylvania")); 
states.add(new State("RI","Rhode Island")); 
states.add(new State("SC","South Carolina")); 
states.add(new State("SD","South Dakota")); 
states.add(new State("TN","Tennessee")); 
states.add(new State("TX","Texas")); 
states.add(new State("UT","Utah")); 
states.add(new State("VT","Vermont")); 
states.add(new State("VA","Virginia")); 
states.add(new State("WA","Washington")); 
states.add(new State("WV","West Virginia")); 
states.add(new State("WI","Wisconsin")); 
states.add(new State("WY","Wyoming")); 
} 

public List<State> getAllStates() { 
return states; 
} 

} 

In your JSP you can reference the state helper with the following JSTL tag. Using scope="application" insures that the helper will be instantiated once and re-used for everyone.

 
<jsp:useBean id="stateHelper" class="com.app.helper.StateHelper" scope="application" /> 

In your <stripes:form> nesting, reference the state helper like this...

 
<stripes:select name="myDataObject.state" size="1"> 
<stripes:option value="">Select One</stripes:option> 
<stripes:options-collection collection="${stateHelper.allStates}" 
label="name" value="code"/> 
</stripes:select>