Roy
May 2, 2015, 7:33am
1
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.
Roy
May 2, 2015, 12:18pm
3
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.
Roy
May 2, 2015, 1:47pm
5
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?
Huhu,
Welchen Server nutzt du? Hat er JavaEE6 oder JavaEE7 implementiert? Wenn er nur JavaEE6 kann, dann gucke mal hier
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. 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.
viele Grüße
Steven