Here is the correct OGNL expression: <param name="location">${#parameters['origurl'] == null ? 'Welcome.do' : #parameters['origurl']}</param>
Of course in Login.jsp you need... <s:form action="Login.do" validate="true"> <s:if test="${param.origurl ne null}"> <s:hidden name="origurl" value="${param.origurl}"/> </s:if> .... And finally, this has the side effect that all links on the login page created with <s:url ...> will also have the origurl parameter. You can override this behavior by setting includeParams="none" (i think), but it's not strictly necessary because the <s:form ...> action does not inherit those parameters. - Jae On 4/8/07, Jae K <[EMAIL PROTECTED]> wrote:
It turns out that ${ServletRequest.requestURI } is the correct OGNL expression. Of course you need to have a "getServletRequest" method in your action superclass, which means all of your actions for your application that requires a login will have to implement that method or subclass from a class that does. Dale, the "parse" param is set to true by default so I didn't have to set it. The second part requires redirecting to the origurl location after a successful login. This the OGNL expression I have so far, but it's not working yet. I'll post again once i fix it. <param name="location">${#ServletRequest.parameter["origurl"] == null ? " Welcome.do" : #ServletRequest.parameter["origurl"]}</param> On 4/8/07, Jae K <[EMAIL PROTECTED]> wrote: > > Right after posting this I realized that my AuthenticationInterceptor > was the first interceptor to be called, and that's why the ServletRequest > object wasn't set. > > AAAHHHHHhh. I've been burned by the config twice already (the first time > was when using the struts-default.xml config, ValidationInterceptor is > configured not to validate for certain methods), but I'm willing to admit > that it's my dumb oversight. > > Now I need to get the OGNL syntax right. > > On 4/8/07, Jae K <[EMAIL PROTECTED]> wrote: > > > > Sigh... I tried tackling the first half of this problem today. The > > first part is getting the original requested URL as a parameter to the > > RedirectActionResult. > > > > </global-results> > > <result name="login" type="redirect-action"> > > <param name="actionName">Login</param> > > <param name="namespace">/</param> > > <param name="origurl">${ServletRequest.requestURI}</param> <-- not sure about the OGNL here. > > </result> > > </global-results> > > > > All of my actions extend MySupport, which implement > > ServletRequestAware. I fired my debugger to see whether the request object > > would even be set (with the setServletRequest method) in my action before > > the redirect-action is executed. NO! I don't think I can access the > > ServletRequest object from the redirect-action configuration! > > > > My only remaining option is to create my own redirect class that taps > > into the ServletRequest object via the invocation object. Rigth now S2 is > > looking very very unattractive as a web framework, because the OGNL features > > are not well documented (esp in relation to struts results), and because the > > given Result and Interceptor classes are not suitable for my basic needs > > such as resume after redirect. > > > > - Jae > > > > On 4/6/07, Dave Newton < [EMAIL PROTECTED]> wrote: > > > > > > --- meeboo <[EMAIL PROTECTED]> wrote: > > > > One last question regarding this. As I beforehand > > > > don't know where to redirect the user after the > > > login > > > > action I will have to implement the > > > > ServletResponseAware interface and then use the > > > > HttpServletResponse for this. This seems like an > > > ugly > > > > way to redirect the user, are there other ways > > > maybe? > > > > > > As someone else mentioned if you are using an > > > interface to set the original URL (like void > > > setOriginalUrl(String) & String getOriginalUrl()) then > > > you can map a redirect in your action's config, more > > > or less like the following: > > > > > > <result type="redirect">${originalUrl}</result> > > > > > > That was a day or two ago; I don't have a reference to > > > it handy and I don't recall who the poster was. > > > > > > d. > > > > > > > > > > > > > > > ____________________________________________________________________________________ > > > > > > It's here! Your new message! > > > Get new email alerts with the free Yahoo! Toolbar. > > > http://tools.search.yahoo.com/toolbar/features/mail/ > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > >