# JSF: Bei Navigation Bilder / Styles nicht mehr verfügbar



## Schludi (24. Mai 2007)

Hallo, 

ich habe mir ein Login auf der Basis von JSF aufgebaut (mit Hilfe des JSF Kickstart Tutorials von jsftutorials.net). Nach jeder Navigation sind allerdings die Bilder weg. Hab sie in einem verzeichnis 
"Images" in WebContent, und die Styles in einem Verzeichnis "Styles". Da bei einem falschen Login mit einem *return null* keine Navigation stattfindet, befindet man sich wieder auf der Hauptseite - allerdings sind auch hier die images / styles dann weg. Beim ersten Laden der Hauptseite sind sie aber vorhanden (nur beim ersten redirect z.B. nachdem der Login fehlschlägt wieder auf die Hauptseite sind sie weg).

Muss man in der Struts-Config irgendwas festlegen damit die styles wieder da sind? Ich hab sie auf der Startseite so eingebunden:



> <%@ taglib tagdir="/WEB-INF/tags" prefix="cust"%>
> 
> <html>
> <head>
> ...



Meine Faces-config.xml:


```
<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC
  "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
  "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">

<faces-config>
  
  <navigation-rule>
    <from-view-id>/pages/login.jsp</from-view-id>
    <navigation-case>
      <from-outcome>login</from-outcome> 
      <to-view-id>/pages/content.jsp</to-view-id>
    </navigation-case>
  </navigation-rule>
  
  <navigation-rule>
    <from-view-id>*</from-view-id>
    <navigation-case>
      <from-outcome>logout</from-outcome> 
      <to-view-id>/pages/login.jsp</to-view-id>
    </navigation-case>
  </navigation-rule>

  <managed-bean>
    <managed-bean-name>userBean</managed-bean-name>
    <managed-bean-class>containerliste.UserBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>

</faces-config>
```

Hier die User-Bean für den Login:


```
package containerliste;

import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import javax.faces.application.FacesMessage;
import java.util.ResourceBundle;

public class UserBean {

  String username = "";
  String password = "";
  boolean isAuthorized = false;
  User user = null;
  int randomNumber ; // random number generated by application

  // constructor, generates random number
  public UserBean () 
  {  
	  
  }
  // setter for inputNumber
  public void setUsername (String value){
     this.username = value;
  }
  // getter for inputNumber
  public String getUsername () {
    return this.username;
  }
  
  // setter for inputNumber
  public void setPassword (String value){
     this.password = value;
  }
  // getter for inputNumber
  public String getPassword() {
    return this.password;
  }   
  // this method simply invalidates the current session
  public String logout () {
    FacesContext context = FacesContext.getCurrentInstance();
    HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
    session.invalidate();
    return "logout"; 
  }
  
  public User getUser()
  {
	  return user;
  }
  

  public String checkUser () 
  {
	user = User.findUser(username, password);

    if ( user != null ) 
    { 
      this.setAuthorized(true);
      return "login";
    }
    else 
    {
      this.setAuthorized(false);
      FacesContext context = FacesContext.getCurrentInstance();
      ResourceBundle bundle = ResourceBundle.getBundle("containerliste.messages", context.getViewRoot().getLocale());
      String msg = "";
      msg = bundle.getString("wrong");
      context.addMessage (null, new FacesMessage(msg)); 
      return null;
    }
  }
  
  public boolean isAuthorized() 
  {
	return isAuthorized;
  }
  
  private void setAuthorized(boolean isAuthorized) 
  {
	this.isAuthorized = isAuthorized;
  }
}
```


----------



## Schludi (24. Mai 2007)

Hat sich erledigt ich glaube das mit der Weiterleitung in das Verzeichnis pages/ vom Kickstart-Tutorial bringt irgendwie das mit dem images-Verzeichnis durcheinander, da am Anfang im Context der Weiterleitung noch die styles in styles/ verfügbar sind, später aber nur in ../styles/ hab jetzt die Seiten in ein Verzeichnis kopiert


----------

