Use ImageButtonBean for Image based Form Submits in Struts

By: Lakshmi Viewed: 153190 times    

Whenever a form is submitted via <input type=”image” name=”save” />, two request parameters save.x and save.y – corresponding to x and y coordinates are submitted. We don’t worry about the exact value of the coordinates since we are not using mage maps. Instead the mere presence of save.x and/or save.y indicates that the form was submitted via the save image button. We combine this concept with Struts support for nested properties:

a. Add two fields named save and cancel to CustomerForm. Both fields are of type ImageButtonBean. Add getter methods for each.

b. Remove the step field and its getters and setters. We will not use it anymore.

c. Change the CustomerAction to use the following check in its execute() method, instead of the form.getStep().equals(“Save”):

form.getSave().isSelected()

This method checks if the save button is used for form submission.

d. Similarly the isCancelled() method will not work since the Struts supplied cancel button checks for pre defined request parameter. We now have to replace it with:

form.getCancel().isSelected()

e. Also since we are not using the pre-defined Cancel button anymore, the validate() method in CustomerForm will run for Cancel too. Hence add the code to bypass validation for Form Cancellation.

f. In the CustomerForm.jsp, add the following for the image buttons:
<html:form>
..
..
..

<html:image property="save"
srcKey="image.save"
altKey="image.save.alttext" />
<html:image property="cancel"
srcKey="image.cancel"
altKey="image.cancel.alttext" />

..
</html:form>

g. Define the srcKey and altKey for both images in the Resource Bundles

image.save=images/save.gif
image.save.alttext=Save the Form
image.cancel=images/cancel.gif
image.cancel.alttext=Cancel Submission

Most Viewed Articles (in Struts )

Latest Articles (in Struts)

Comment on this tutorial