Ich muss einen Parameter an eine Bean übergeben, wenn ich einen Ajax-Aufruf mache.JSF - Übergeben Sie einen Parameter bei Ajax-Aufruf - Was ist falsch an diesem Code?
Meine Bohne ist dies:
@ManagedBean
@RequestScoped
public class Selector {
@ManagedProperty(value="#{param.page}")
private String page;
@PostConstruct
public void init() {
if(page==null || page.trim().isEmpty()) {
this.page="homepage";
}
System.out.println(this.page);
}
public String getPage() { return page; }
public void setPage(String page) { this.page=page; }
}
Und wenn ich den Ajax-Aufruf zu tun, ich brauche (aufgrund der Tatsache, dass ich einen anderen Kontext machen will), um die Seite Parameter. Also ich habe das getan:
// in this moment selector.page = articles
<h:inputHidden value="#{selector.page}" id="page" />
<h:commandLink>
<f:setPropertyActionListener target="#{articlesSelector.order}" value="1" />
<f:ajax event="click" render=":articlesContent"/>
<h:graphicImage value="img/arrow_up.png" alt="Arrow Up"/>
</h:commandLink>
Aber in der Apply-Phase, die Seite immer noch "homepage". Es sollte den Seitenparameter aus der Anfrage erhalten, ihn auf den Komponentenbaum anwenden und den Kontext "Artikel" rendern. Warum passiert nicht?
Prost
Ja, ein bisschen seltsam als Verhalten. Aber funktioniert :) Danke !!! – markzzz
Gern geschehen. – BalusC
P.S. als JSF Rettung, vergessen Sie nicht http://StackOverflow.com/Questions/4334424/JSF-Why-Setter-is-Not-Called-this-time und http://StackOverflow.com/Questions/4304763/JSF- problem-with-viewscope (vielleicht hast du sie nicht gesehen hehe) – markzzz