Ich muss 2 verschiedene ManagedProperty für die gleiche Bean festlegen. Also habe ich versucht:JSF - Legen Sie mehrere Werte auf @ManagedProperty in einer einzigen Bean
@ManagedBean(name="selector")
@RequestScoped
public class Selector {
@ManagedProperty(value="#{param.page}")
@ManagedProperty(value="#{param.profile_page}")
private String page;
private String profile_page;
public String getProfile_page() {
if(profile_page==null || profile_page.trim().isEmpty()) {
this.profile_page="main";
}
return profile_page;
}
public void setProfile_page(String profile_page) { this.profile_page = profile_page; }
public String getPage() {
if(page==null || page.trim().isEmpty()) {
this.page="homepage";
}
return page;
}
public void setPage(String page) { this.page=page; }
}
aber leider kann ich nicht 2 verschiedene @ManagedProperty schreiben: es sagt Anmerkungen duplizieren. Wie kann ich es reparieren?
Ein anderes: wenn ich diesen Wert zurückgebe, ist es ein String, und ich muss konfrontieren. Diese Syntax:
<h:panelGroup rendered="#{selector.profile_page.compareTo("main")}">
<ui:include src="/profile/profile_main.xhtml" />
</h:panelGroup>
wird funktionieren?
Prost
Perfect !!! +1 wie üblich :) Über die damit verbundene Frage? Kann ich diese Syntax verwenden? Sieht so aus, als ob nichts passieren würde ... – markzzz
Verwende 'rendered =" # {selector.profile_page == 'main'} "' stattdessen. Weitere Beispiele für gültige boolesche Ausdrücke in EL finden Sie in [diese Antwort] (http://stackoverflow.com/questions/3466289/how-to-enable-disable-components-in-jsf-icefaces/3466918#3466918). – BalusC
Danke nochmal :) – markzzz