0 Replies Latest reply: Apr 23, 2012 5:27 PM by Freddy Monsalve RSS

How to redirect to two different pages in pages.xml

Freddy Monsalve Newbie

Hi everyone, mi question is based in redirecting to one page or another according to a value passed by URL. For example:

 

this is the link:

 

http://localhost:8080/Refund/home.seam?user=012012&name=john&auth_level=4

 

the site with this data loads a certain xhtml page (i.e: page1.xhtml)

like pages.xml says:

 

<page view-id="/home.xhtml" >
        <action if="#{authenticator.limpiar}" execute="#{identity.login}"  />
                    <param name="user" value="#{user.rut}" />
                    <param name="emp" value="#{user.empRut}" />
                    <param name="auth_level" value="#{user.authLevel}" />
                      
        <navigation from-action="#{identity.login}" >
                <rule if="#{identity.loggedIn}" >
                        <redirect view-id="/pages/page1.xhtml" />
                </rule>
                <rule if="#{not identity.loggedIn}">
                        <redirect view-id="/errorLogin.xhtml"/>
                </rule>
        </navigation>
    </page>

 

now we added another parameter called &emp_id=1, so the URL now is :

 

http://localhost:8080/Refund/home.seam?user=012012&name=john&auth_level=4 &emp_id=1

and added to pages.xml : <param name="emp_id" value="#{user.emp_id}" />

 

the thing is that emp_id can be 1 or 15 and depending that number we need to redirect to one page or another. How can i do that?

in pages.xml? or in authenticator.java?

 

this is the code.

 

   

package cl.exe.sm.reembolso.action;

import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.log.Log;
import org.jboss.seam.security.Identity;


import cl.exe.sm.reembolso.bean.BusquedaBono;
import cl.exe.sm.reembolso.pojo.User;
import cl.exe.sm.reembolso.procedures.ManejadorProcedimientos;


@Name("authenticator")
public class Authenticator
{
    @Logger private Log log;
    @In Identity identity;
    @In @Out Usuario user;
    
    @Out BusquedaBono busquedaBono; 
    
    public boolean authenticate()
    {
              boolean resultado = false;
              log.info("Inicio:authenticate()");
              log.info("Autenticando usuario {0}", user.getRut());
        user= ManejadorProcedimientos.autenticarUsuario(user);
        if (usuario.getPerId() == 4){
                  log.info("Usuario autenticado");
                  resultado = true;
        }
              log.info("Fin:authenticate()");
        return resultado;
    }
    
    public boolean getLimpiar(){
              busquedaBono = new BusquedaBono();
              return true;
    }
    
}

 

thanks for your responses!!!!