[jboss-user] [JBoss Seam] - Re: Redirecting into view that is inside a directory

pbrewer_uk do-not-reply at jboss.com
Fri Dec 15 10:13:38 EST 2006


If I understand correctly, then I should explain how navigation rules are supposed to work. This is how your current setup will work: Your /index.jsp will redirect to /home.seam which, in turn will map to a file in your war called /home.xhtml which will then be rendered on the front-end. (Note no navigation rule is involved here.)

The navigation rules are supposed to be used as action outcomes: looking at the seam booking example, there is a login action method that returns an outcome of either "login" or "main" these outcomes are then mapped, in the faces-config.xml file (see below), to views.

Seam also introduces the concept of stateful navigation through the use of Pageflows. Have a look at the seam reference for more info on this.

LoginAction.java extract...

  |    public String login()
  |    {
  |       List<User> results = em.createQuery("select u from User u where u.username=:username and u.password=:password")
  |             .setParameter("username", user.getUsername())
  |             .setParameter("password", user.getPassword())
  |             .getResultList();
  |       
  |       if ( results.size()==0 )
  |       {
  |          FacesMessages.instance().add("Invalid login");
  |          return "login";
  |       }
  |       else
  |       {
  |          user = results.get(0);
  |          Contexts.getSessionContext().set("loggedIn", true);
  |          FacesMessages.instance().add("Welcome, #{user.name}");
  |          return "main";
  |       }
  |       
  |    }
  | 

faces-config.xml extract...

  |     <navigation-rule>
  | 
  |         <navigation-case>
  |             <from-outcome>login</from-outcome>
  |             <to-view-id>/home.xhtml</to-view-id>
  |             <redirect />
  |         </navigation-case>
  |         
  |         <navigation-case>
  |             <from-outcome>register</from-outcome>
  |             <to-view-id>/register.xhtml</to-view-id>
  |             <redirect />
  |         </navigation-case>
  | 
  |         <navigation-case>
  |             <from-outcome>password</from-outcome>
  |             <to-view-id>/password.xhtml</to-view-id>
  |             <redirect />
  |         </navigation-case>
  | 
  |         <navigation-case>
  |             <from-outcome>main</from-outcome>
  |             <to-view-id>/main.xhtml</to-view-id>
  |             <redirect />
  |         </navigation-case>
  | 
  |         <navigation-case>
  |             <from-outcome>hotel</from-outcome>
  |             <to-view-id>/hotel.xhtml</to-view-id>
  |             <redirect />
  |         </navigation-case>
  | 
  |     </navigation-rule>
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3994238#3994238

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3994238



More information about the jboss-user mailing list