struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <ch...@christopherschultz.net>
Subject Re: Implementing "cancel" on a form
Date Mon, 05 Oct 2015 04:58:51 GMT
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Martin,

On 10/4/15 7:40 PM, Martin Gainty wrote:
> by form you mean Struts 1.3 StrutsForm?

No, an S2 form. I'm sorry I wasn't specific, though it should have
been obvious since I mentioned I was reading "Struts /2/ in Action".

I'm just talking about an HTML <form>, not formal class called a Form
or anything like that.

> if your form class extends ActionForm then implement reset as seen
> here: public FooActionForm extends
> org.apache.struts.action.ActionForm { @Override public void
> reset(org.apache.struts.action.ActionMapping arg0, 
> HttpServletRequest arg1)  { arg1.getSession(false);.invalidate();
> //invalidate session } }

Logging the user out when they cancel a form seems rather drastic,
don't you think? Also, I don't think the above code does what you
think it does.

> <!-- struts.xml you define interceptor name and class for reset
> --> <interceptor name="actionForm-reset"
> class="org.apache.struts2.s1.ActionFormResetInterceptor"/> <include
> file="struts-integration.xml" />

Nope. If your examples are for Struts 1.3, there are no interceptors
available there.

> <!-- where struts-integration.xml would contain --> <struts> 
> <package name="integration" extends="struts1-default" 
> namespace="/integration"> <interceptor-stack name="integration"> 
> ....... <interceptor-ref name="actionForm-reset"/> <!-- pull
> interceptor for implementation of integration package --> ........ 
> </interceptor-stack> .... </struts>
> 
> <!-- Struts2 ..a somewhat different approach using a specific
> class which will implement button functionality --> 
> struts-validation.xml: <action name="cancelApplication" 
> class="org.apache.struts2.showcase.validation.SubmitApplication" 
> method="cancelApplication"> 
> <result>/validation/storeErrorsAcrossRequestCancel.jsp</result> 
> </action>
> 
> /validation/StoreErrorsAcrossRequestCancel.jsp: <html> <%@taglib
> prefix="s" uri="/struts-tags" %> <head><title>example of errors
> page</title></head> <body> <s:actionmessage/> <s:actionerror/>

> <s:fielderror /> <h1>Application Canceled</h1> <s:url var="url"

> value="/validation/storeErrorsAcrossRequestExample.jsp" /> <s:a
> href="%{#url}">Try Again</s:a> </body> </html>
> 
> you can also shortcut Cancel in jsp with 
> session.removeAttribute("fu");//clean out *all* session attribs 
> session.invalidate();                   //invalidate session

Yeah, none of that makes any sense.

What I've done in the meantime is a heavy-handed approach and written
my own interceptor:

  public String intercept(ActionInvocation actionInvocation)
    throws Exception
  {
    if(ActionContext.getContext().getParameters().containsKey(CANCEL_KEY
))
    {
      if(log.isDebugEnabled())
        log.debug("Form contains " + CANCEL_KEY
                  + " parameter; redirecting to "
                  + CANCEL_FORWARD + " forward");

      return CANCEL_FORWARD;
    }
    else
      return actionInvocation.invoke();
  }

- -chris
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCAAGBQJWEgOLAAoJEBzwKT+lPKRYCW8QAJXVecgOl8oUM/vN8VnnwkUF
pSzN2UNGdjwsqbjLnS8Y5Ck59RpVTjrT0mrZKfsMA6iO1fCKEqPqLu/Oi3F+dwf7
kcqzJ8maVr2ttP1KUokHBX4xeL/JZJOImRT3iQiZ9dtPKm/uSsOrQxnhaz/8dqco
d2SQZSsLqc6mh01k6T2eTfmkk2KtuT4CloCiTsxmbtgkBs2wU44irdGtq9l1yTQE
LA62VgKJhMqzQ9dLsoisos+J0GMXb2On7fmoo5RI91ta1xPa3bX5c1+WrKqCilaZ
nnwV21cKpXLOEPbeZf8Ch0CkvxzVX5rqa+z02HQ08Q4fpSzo61lIb1+XsKaEFX0s
Nvz5mrjX5jrqgXqnvHejVqnggi1YVUlDwAI5wzDlss2CbNf6XT6wE8qLxsKQvuVt
6cqJmt3beRTOPN2pTebFvpSDZkJCWn+BmXLmzDV1G0s6MQZeQhN4R1UDj8FAjlQi
wAB82fLoLlvc5R9dekHSsA+DQvouQ1aoLGawxc4iz/Ky252z1sJbH+Q/yUcvI5U7
v2gqVEgH/oktq6TxLl45A5L9/IHu1wC/X9LfU0ywMnKGV+kLwSHw1xesqkBDuJSy
7/6Y073T19p1cIGgZpbCjJrYBCJV+ro8Rp37wDU3btQTBkop3MxOa8JTdpFGatcU
nEqRURGGlN2mdLKfd8xQ
=eq0t
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message