struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Narayana S" <narayanas...@gmail.com>
Subject Re: [S2] Preserving messages across a Redirect in Struts 2
Date Thu, 06 Nov 2008 05:17:27 GMT
Hi,

      this is my framework problem, for certain reasons using default
servlet session is disabled, i thought it is struts error. sorry to all.

as session is disabled... can i do the same operation with
request.setAttribute(...) ?
can any one tell me where the values added in session are read and used in
new action, in this code?

On Wed, Nov 5, 2008 at 10:14 PM, Greg Lindholm <glindholm@yahoo.com> wrote:

>
> 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
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message