Programming Tutorials

Using Checkbox & Radio Tags, html:select, html:options in Struts Forms

By: Kamini in Struts Tutorials on 2007-09-22  

Checkbox and Radio tags

a. Add a checkbox to the CustomerForm.jsp. It will check if the customer would like to receive email notifications. Its property name is "recieveEmail" and is defined in ActionForm in the next step.
<html:checkbox property="receiveEmail"/>

b. Add a boolean field to CustomerForm called "recieveEmail". Also add getters and setters. (In Struts, single checkboxes are always assigned to boolean fields in ActionForm).

c. Initialize the Boolean field to true in CustomerForm constructor. This will show the checkbox as checked during display.

d. Add three radio buttons to CustomerForm.jsp. At form submission, only the checked radio is submitted.
<html:radio property="preferredCarrier" value="UPS"/>UPS &nbsp;
<html:radio property="preferredCarrier" value="USP"/>USPS &nbsp;
<html:radio property="preferredCarrier" value="FDX"/>FedEx &nbsp;

e. Also add the display labels to the Resource Bundle for the radio and checkbox field

f. Add a string field called preferredCarried to CustomerForm along with getters and setters.

g. In the CustomerForm constructor, initialize the preferredCarrier field to "FDX". See how the radiobox for FedEx gets checked in the html form.

Use html:select

a. Add a Select box with a option as follows:
<html:select property="address.state">
<html:option property="NA"
labelProperty="--Select One--" />
</html:select>

Use html:options tag

a. Create a states.properties file under src/java/struts.example. 

b. Add a options tag to display states as follows:
<html:select property="address.state">
<html:option property="NA"
labelProperty="--Select One--" />

<html:options collection="STRUTS_EXAMPLE_STATES"
property="value" labelProperty="label" />

</html:select>

NOTE: The tag is now looking for a collection as a page/request/session/application scope with the name STRUTS_EXAMPLE_STATES. Various options exist to create the collection and put it in one of the scopes.

Create in the JSP page
Create in the ActionForm and put it in request
Create in the ActionForm and put in Session
Create somewhere else and put in Application scope

The final option is the best since everybody uses the same read only data. We use a ServletContextListener to create the states in the application scope.






Add Comment

* Required information
1000

Comments

No comments yet. Be the first!

Most Viewed Articles (in Struts )

Latest Articles (in Struts)