struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Lindholm <glindh...@yahoo.com>
Subject Re: [S2] Preserving messages across a Redirect in Struts 2
Date Wed, 05 Nov 2008 16:44:03 GMT

There must have been a change in Struts 2.1.2.
Here is an update to the after() method that uses the ActionContext session
map:

    protected void after(ActionInvocation invocation, ValidationAware
validationAware)
        throws Exception
    {
        Result result = invocation.getResult();

        if (result instanceof ServletRedirectResult
            || result instanceof ServletActionRedirectResult)
        {
            Map session = invocation.getInvocationContext().getSession();

            Collection actionErrors = validationAware.getActionErrors();
            if (actionErrors != null && actionErrors.size() > 0)
            {
                session.put(ACTION_ERRORS_KEY, actionErrors);
            }

            Collection actionMessages = validationAware.getActionMessages();
            if (actionMessages != null && actionMessages.size() > 0)
            {
                session.put(ACTION_MESSAGES_KEY, actionMessages);
            }

            Map fieldErrors = validationAware.getFieldErrors();
            if (fieldErrors != null && fieldErrors.size() > 0)
            {
                session.put(FIELD_ERRORS_KEY, fieldErrors);
            }
        }
    }

The full interceptor source can be found here: 
http://glindholm.wordpress.com/2008/07/02/preserving-messages-across-a-redirect-in-struts-2/



Mead Lai wrote:
> 
> "java.lang.UnsupportedOperationException: Don't use default servlet
> session".
> Just use the session from ActionContext, don't use the servlet's.
> 
> protected Map<String,String> getSession() {
>         return ActionContext.getContext().getSession();//from
> ActionContext
> here!
> }
> 
> protected HttpServletRequest request(){
>         return ServletActionContext.getRequest();
>     }
> 
> 
> On Wed, Nov 5, 2008 at 12:05 PM, Narayana S <narayanasgs1@gmail.com>
> wrote:
> 
>> Hi,
>>
>>       i am using apache Tomcat 6.0.3, struts 2.1.2, and jdk 1.6. can any
>> one help me solving this issue?
>>
>> Thanks in advance.
>>
>> On Tue, Nov 4, 2008 at 7:06 PM, Greg Lindholm <glindholm@yahoo.com>
>> wrote:
>>
>> >
>> >
>> >
>> > Ganesh123 wrote:
>> > >
>> > >          Excellent work. i am looking for the same solution. i tried
>> > > implementing your interceptor , but  it is throwing exception ...
>> > >   "java.lang.UnsupportedOperationException: Don't use default servlet
>> > > session".
>> > >
>> > > near session.setAttribute(ACTION_MESSAGES_KEY,actionMessages);
>> > >
>> > >
>> >
>> > Very strange, I've never seen a session where setAttribute() throws an
>> > UnsupportedOperationException.  (And whats a "default servlet
>> session"?)
>> > I can only guess it's something to do with your container environment.
>> >
>> > You had better post your configuration information; platform,
>> container,
>> > cluster setup? etc. maybe someone on the list can help.
>> >
>> > Here are the relevant lines of code from the interceptor.
>> >
>> > ActionContext actionContext = invocation.getInvocationContext();
>> > HttpServletRequest request = (HttpServletRequest)
>> >  actionContext.get(StrutsStatics.HTTP_REQUEST);
>> > HttpSession session = request.getSession(false);
>> > if (session != null)
>> > {
>> >  ...
>> >   Collection actionMessages = validationAware.getActionMessages();
>> >  if (actionMessages != null && actionMessages.size() > 0)
>> >  {
>> >     session.setAttribute(ACTION_MESSAGES_KEY, actionMessages);
>> >  }
>> >   ...
>> > }
>> >
> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/-S2--Preserving-messages-across-a-Redirect-in-Struts-2-tp18245061p20343444.html
Sent from the Struts - User mailing list archive at Nabble.com.


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


Mime
View raw message