Comment utiliser RequestContext dans primefaces?

Je suis nouveau sur primefaces. J'ai essayer quelques-uns des exemples dans primeface vitrine

Mais;

Après saveUser, sur ajax méthode handleComplete(xhr, status, args) args n'ont pas d'arguments ajouté dans saveUser méthode.

MODIFIER : j'ai juste ajouté @ManagedBean annotations parce que je suis en utilisant jsf 2.0

EDIT-2

dans mon pom;

        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>2.2</version>
        </dependency>

dans mon web.xml

<servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>

dans mon .page xhtml

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.prime.com.tr/ui">

<h:head>

    <script type="text/javascript">  
        function handleComplete(xhr, status, args) {  
            if(args.validationFailed) {  
                alert("Validation Failed");  
            } else {  
                alert("Save:" + args.saved);  
                alert("FirstName: " + args.user.firstname + ", Lastname: " + args.user.lastname);   
            }  
        }  
    </script> 

</h:head>
<h:body>
<h:form>
    <p:panel id="panel" header="New User">
        <h:panelGrid columns="2">
            <h:outputLabel for="firstname" value="Firstname: *" />
            <p:inputText id="firstname" value="#{user.firstName}" required="true"/>

            <h:outputLabel for="surname" value="Lastname: *"  />
            <p:inputText id="surname" value="#{user.surName}" required="true"/>
        </h:panelGrid>
    </p:panel>

    <p:commandButton value="Save" actionListener="#{user.saveUser}" oncomplete="handleComplete(xhr, status, args)" />
</h:form>


</h:body>
</html>

dans ma fève;

@ManagedBean(name = "user")
public class User {

    private String firstName = "";
    private String surName = "";

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setSurName(String surName) {
        this.surName = surName;
    }

    public String getSurName() {
        return surName;
    }

    public void saveUser(ActionEvent actionEvent) {
        //save user
        RequestContext context = RequestContext.getCurrentInstance();
        context.addCallbackParam("saved", true);
        context.addCallbackParam("user", this);
    }

}

MODIFIER -3

Je peux attraper les propriétés réalisées avec des données en ajax réponse avec this.PrimeFaces.ajax.RequestManager.requests[0].data il transporte des données ;

"j_id2059540600_7ac21836=j_id2059540600_7ac21836&j_id2059540600_7ac21836%3Afirstname=qweq&j_id2059540600_7ac21836%3Asurname=asda&javax.faces.ViewState=8900392402396831372%3A-8139730777939772917&javax.faces.partial.ajax=true&javax.faces.source=j_id2059540600_7ac21836:j_id2059540600_7ac218a5&javax.faces.partial.execute=@all&j_id2059540600_7ac21836:j_id2059540600_7ac218a5=j_id2059540600_7ac21836:j_id2059540600_7ac218a5"

Mais je suis assez sûr qu'il y en est une autre option. Juste ne peut pas seet il.

Merci pour toute aide.

  • Il sera plus facile de vous aider si vous modifiez votre question à inclure de code suivant: (a) la <p:ajax> élément et de son élément parent de votre Facelets page, et (b) votre action méthode d'écouteur de votre managed bean.
  • je peux les poster ici, mais rien de plus que dans ma réf.
  • toute réponse....?
  • Ce qui sont que vous essayez d'accomplir exactement avec l'appel de handleComplete? Ce args attendez-vous à être automatiquement transmis comme argument? Rappelez-vous JSF a son propre construit dans la validation et l'action #{user.saveUser} ne sera pas appelé si la validation échoue sur le côté serveur. Je pense que vous avez fait ce plus compliqué que cela doit l'être.
  • merci pour la réponse. Je suis juste de jouer avec des composants pour l'instant. Je m'attends à voir du côté client que désiré/créé haricots propriétés, vous attendez pas à voir si il y a une validation sur l'action ou pas.
InformationsquelleAutor | 2011-07-11