JSF wird nicht übersetzt

s. http://forum.byte-welt.net/java-forum-erste-hilfe-vom-java-welt-kompetenz-zentrum/java-grundlagen-fuer-anfaenger-und-umsteiger-java-se/16217-enums.html

Meine Projekt beinhaltet jetzt die Dateien

<default.sourcepacke>

public enum EGender {
       UNKOWN("unknown"),
       FEMALE("female"),
       MASCULIN("masculin");
       
       private String label;

       private EGender(String label) {
               this.label = label;
       }

       public String getLabel() {
              return label;
       }
}

<default.sourcepacke>

@ManagedBean( name="userBean" )
@SessionScoped
public class UserService {
       private User user = new User();
       
       public User getUser() {
              return user;
       }

       public void setUser(User user) {
              this.user = user;
       }
       
       public EGender[] getGenders() {
              return EGender.values();
       }
       
       public String save() {
              return "/registry.xhtml";
       }
}

Web-Pages/registry.xhtml
[XML]

<?xml version='1.0' encoding='UTF-8' ?>

Registry

        <h:commandButton id="save" value="Save" action="#{userBean.save}" />
    </h:form> 
</body>

[/XML]

Wenn ich es ausführe erhalte ich allerdings folgende Quellcode
[XML]

<?xml version='1.0' encoding='UTF-8' ?>

Registry

        <h:commandButton id="save" value="Save" action="#{userBean.save}" />
    </h:form> 
</body>
[/XML]

Das Facelet wird anscheinend nicht übersetzt. Weis jemand von euch was hier gerad falsch läuft?

P.S. Das Projekt läuft unter JSF 2.2

Deine Faces-config.xml und Web.xml wären interessant. Wie rufst du die Seite auf? Und eigentlich verwendet man jetzt die CDI annotationen.

meine web.xml sieht wie folgt aus:

[XML]

<?xml version="1.0" encoding="UTF-8"?> javax.faces.PROJECT_STAGE Development Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet /faces/* 30 faces/index.xhtml [/XML]

face-config.xml habe ich nicht extra angelegt. Aufrufen tue ich das über einen einfach Link aus der index.xhtml heraus
[XML]

<?xml version='1.0' encoding='UTF-8' ?>

Home

[/XML]

Füg mal folgendes in die web.xml
[XML]
Faces Servlet
*.jsf
[/XML]
statt deines Mappings.

Meine web.xml sieht jetzt wie folgt aus

[XML]

<?xml version="1.0" encoding="UTF-8"?> javax.faces.PROJECT_STAGE Development Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet *.jsf 30 index.xhtml [/XML]

aus habe ich “/faces/” entfernt, weil dieses zu einem 404 Error führte. So wie dargestellt funktioniert es zwar, aber das Problem bleibt bestehen.

Was passiert wenn das servlet-mapping so aussieht?

[XML]
Faces Servlet
*.xhtml
[/XML]

die xhtml Dateien liegen ja nicht im Unterverzeichnis faces und haben ja auch nicht die Endung jsf oder?

So sollte Deine web.xml ungefähr aussehen: https://bitbucket.org/butterfaces/primefaces-integration/src/15e8957f9a94918a53a64063cbe941135f751ca1/src/main/webapp/WEB-INF/web.xml?at=master

Und dann rufst Du die Seite /context-path/index.jsf

Huhu,

Welchen Server nutzt du? Hat er JavaEE6 oder JavaEE7 implementiert? Wenn er nur JavaEE6 kann, dann gucke mal hier :slight_smile:
http://forum.byte-welt.net/java-forum-erste-hilfe-vom-java-welt-kompetenz-zentrum/java-enterprise-edition-java-ee/16530-jsf-wird-nicht-angezeigt.html

Und, wenn ich dir einen Tip geben darf. Nutzt bitte nicht mehr die Annotation @ManagedBean. Die ist Deprecated. @Named ist die richtige Wahl und somit gliedert sich die Bean mit ins CDI ein. :slight_smile: Einfacher zu injecten und der Container kann diese besser verwalten. Zudem kannst du dann mit Interceptoren arbeiten und vieles mehr, was dir CDI zur Verfügung stellt, was dir einen großen Vorteil bringt! Könntest zum Beispiel deinen Controller mit Events befeuern und und und. :slight_smile:

viele Grüße
Steven