JSF - Passer d'un paramètre à la requête ajax - Quel est le problème sur ce code?
J'ai besoin de passer un paramètre à un haricot quand je fais un appel ajax.
Mon haricot est ceci :
@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 tiens à rendre un contexte différent) le paramètre de la page. J'ai donc 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 l'application de demande de phase, la page "accueil". Il devrait être à la page de paramètres à partir de la demande, de les appliquer à la Composante de l'arbre et de rendre les "articles" de contexte. Pourquoi ne se passe?
Acclamations
OriginalL'auteur markzzz | 2010-12-02
Vous devez vous connecter pour publier un commentaire.
Parce que la valeur de
<h:inputHidden>
est seulement au cours de modèle de mise à jour des valeurs de phase. C'est en effet un peu intuitive de comportement qui existent depuis longtemps dans le programme JSF. J'ai jamais signalé un problème sur ce sujet, mais c'était fermé comme "by design".Il existe plusieurs façons de résoudre ce problème, entre autres, la portée de vue. Dans votre cas particulier, vous pouvez utiliser
<f:param>
au lieu de<h:inputHidden>
:Il sera ensuite disponible en tant que paramètre de la requête
#{param.page}
et à votre portée de la requête de haricots ainsi être défini comme@ManagedProperty
.Vous êtes les bienvenus.
P. S. comme JSF de sauvetage, n'oubliez pas stackoverflow.com/questions/4334424/... et stackoverflow.com/questions/4304763/jsf-problem-with-viewscope (peut-être que vous n'avez pas les voir hehe)
Désolé, occupé au travail. Les combats avec les putain de SQL et date de questions. Le problème n'était pas immédiatement évident dans ces questions, je ne pourrais pas répondre en une seconde. Vais regarder si j'ai plus de temps.
Ohh oui. Bonne chance avec datetime, c'est embêtant!!! Bon travail de l'homme! 🙂
OriginalL'auteur BalusC