Java J2EE Struts - InvalidCancelException
By Guillaume Donars on Thursday, January 25 2007, 21:51 - Coding - Permalink

Si vous utilisez le bouton cancel pour annuler un formulaire et que vous avez par exemple dans le fichier struts-config.xml:
<action input="/loginForm.jsp"
name="NewStrutsActionForm"
path="/login"
scope="request"
type="com.myapp.struts.NewStrutsAction">
<forward name="success" path="/loginSuccess.jsp"/>
<forward name="cancel" path="/loginCancel.jsp"/>
</action>
Vous avez peut-être obtenu en cliquant sur ce bouton une erreur:
Exception: org.apache.struts.action.InvalidCancelException
La cause est qu'à partir de la version 1.2.9 de Struts, pour des raisons de sécurité une propriété à été ajoutée: cancellable qui est à false par défaut et n'autorise donc pas l'annulation d'un formulaire.
Pour y remédier il faut donc mettre cette propriété à true comme ci-dessous:
<action input="/loginForm.jsp"
name="NewStrutsActionForm"
path="/login"
scope="request"
type="com.myapp.struts.NewStrutsAction">
<forward name="success" path="/loginSuccess.jsp"/>
<set-property property="cancellable" value="true"/>
<forward name="cancel" path="/loginCancel.jsp"/>
</action>