Ingo,

in Tobago there is a Servlet, called NonFacesRequestServlet, maybe
that helps you.

-M

[1]
http://myfaces.apache.org/tobago/tobago-core/apidocs/org/apache/myfaces/tobago/servlet/NonFacesRequestServlet.html

On 9/28/06, Ingo Düppe <[EMAIL PROTECTED]> wrote:
Hi Craig,

guess you are right that the remoting is not the solution for my
problem. What I like to realize is the following:
- The user gets an email with a link to the webapp.
- When the user click on this link an action method should decide
whether the link is still valid or not.
- If the link is still valid the user is redirected to the login page.
- If not the user is redirected to a new request page.

So what I need is a solution to trigger an action method by a get
request that returns an outcome that is handled by jsf?

My current solution is a configurable phaselistener that checks whether
or not the requested link. If requested viewId is equal to a configured
action the action method will be invoked and the outcome of the method
will be analyzed by the navigation handler.

Any simpler solution or maybe more jsf like solution is very welcomed.

Regards

Ingo

Here is my action process method:
       ...
        final UIViewRoot view = facesContext.getViewRoot();

        final String viewId = view.getViewId();
        if (StringUtils.isNotBlank(viewId)) {
            for (PageAction action : actions) {
                if (action.matches(viewId)) {
                    if (logger.isDebugEnabled()) {
                        logger.debug("perform page action " +
action.getAction());
                    }

                    final String outcome = action.perform(facesContext);

                    if (outcome != null) {
                        final Application application =
facesContext.getApplication();
                        NavigationHandler navigationHandler =
application.getNavigationHandler();
                        navigationHandler.handleNavigation(facesContext,
action.getFromAction(), outcome);
                        break;
                    }
                }
            }
        }


Craig McClanahan schrieb:
> Sorry for the late response (I've been in an airplane a lot in the
> last few
> days).  But I have a basic question for you.
>
> Why are you using Shale Remoting if you are expecting to navigate to a
> new
> page?  The design purpose of these dynamic callbacks is to set up
> handlers
> for an asynchronous callback (such as from XmlHTTPRequest calls in an
> AJAX
> component).  For that scenario, Shale Remoting expects your handler to:
>
> * Prepare the complete response (typically in XML or JSON or whatever).
>  The most convenient way is to get an appropriate ResponseWriter and
>  write all of the output.
>
> * Call FacesContext.responseComplete() to indicate to JSF that you have
>  already completed the response for this request, so Render Response
>  phase is skipped.
>
> On the other hand, a standard JSF request (i.e. the complete page
> submit) is
> passed through JSF navigation in the usual way, because the purpose of
> the
> response is to replace the *entire* page.
>
> So, based on this, it seems like you are trying to mix things that
> were not
> designed to be mixed.
>
> Craig
>




--
Matthias Wessendorf
http://tinyurl.com/fmywh

further stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com

Reply via email to