If you'll look closely at
The Taglib documentation, you will see that an html:cancel button does cause a submit button to be rendered. The main difference is that it will bypass any validation. If your action class is a subclass of DispatchAction as yours appears to be, just code a
cancelled method to handle the case where the cancel button is pressed. Also, don't forget to put
cancellable="true" in the action path definition in your struts-config.xml file.