Je dois passer un paramètre à un bean lorsque je fais un appel ajax.JSF - Passer un paramètre sur un appel ajax - Quel est le problème sur ce code?
Mon haricot est la suivante:
@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; }
}
Et, quand je fais l'appel ajax, j'ai besoin (en raison du fait que je veux rendre un contexte différent) le paramètre de page. Donc, j'ai fait ceci:
// 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>
Mais, sur la phase de demande d'application, la page toujours "page d'accueil". Il devrait obtenir le paramètre page à partir de la requête, l'appliquer à l'arbre des composants et afficher le contexte "articles". Pourquoi ça n'arrive pas?
Vive
Oui, un peu étrange comme comportement. Mais fonctionne :) Merci !!! – markzzz
De rien. – BalusC
P.S. comme sauvetage JSF, n'oubliez pas http://stackoverflow.com/questions/4334424/jsf-why-setter-is-not-called-this-time et http://stackoverflow.com/questions/4304763/jsf- problem-with-viewscope (peut-être vous ne les avez pas vu héhé) – markzzz