Thanks for the heads up! I'm learning every day!
And yes, I concur: this definitely needs to be documented!
2008/7/14 Gabriel Belingueres <[EMAIL PROTECTED]>:
> Seems like something is not correctly initialized in OGNL when you get
> the session from the HTTPServletRequest object this way (it should be
> documented somewhere or otherwise fix it.)
>
> But you don't need to get both the HTTPSession and the Map to put
> something in session scope. The SessionMap is an adapter to ease unit
> testing of actions, and every change is is done to the SessionMap it
> is delegated to the HTTPSession object.
>
> 2008/7/14 Pierre Thibaudeau <[EMAIL PROTECTED]>:
>> 2008/7/14 Gabriel Belingueres <[EMAIL PROTECTED]>:
>>> Please test your interceptor using the following to get the session:
>>> Map session = invocation.getInvocationContext().getSession();
>>
>> Well, Gabriel:
>>
>> a) I'll be d*mned!
>> b) You're a genius! ;) (I would never have thought of looking that way!)
>>
>> Now, it's worth making an extra comment about this strange situation.
>> I patched my interceptor as follows:
>>
>> public String intercept(ActionInvocation invocation) throws Exception
>> {
>> ActionContext context = invocation.getInvocationContext();
>> HttpServletRequest request = (HttpServletRequest)
>> context.get(StrutsStatics.HTTP_REQUEST);
>> HttpSession session = request.getSession(true /* create if
>> not yet
>> in existence */);
>> Map<?,?> sessionMap =
>> invocation.getInvocationContext().getSession();
>> ...
>> }
>>
>> In other words, I didn't merely REPLACE my previous HttpSession by the
>> Map<?,?>, but I added the Map<?,?>. With this new setup, so long as I
>> put one object in the sessionMap, then the other object (yes, there
>> were two of them; I hadn't mention the second one) is set properly
>> with HttpSession.setAttribute(String). And BOTH object are recognized
>> by OGNL, not merely the one that I had Map.put(Object, Object)...
>>
>> So basically, we are facing an initialization issue somewhere. I wish
>> there was a more elegant way of preparing that new session... But at
>> least, now the interceptor behaves as intended.
>>
>> I bet this issue should be made explicit in the Strut2 /
>> ActionInvocation /OGNL guides...
>>
>> Thanks!
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]