ajaxjsfjsf-2backing-beans

Ajax request and attributes


I am trying this tutorial which describes how to set attributes into server call and how to analyse the attributes on backing bean;

<h:commandButton id="submit" 
actionListener="#{userData.attributeListener}" action="result"> 
   <f:attribute name="value" value="Show Message" />                
   <f:attribute name="username" value="JSF 2.0 User" />
</h:commandButton>

I googled a lot but most examples show how to set attrs for synch-ed calls not the asynch-ed ones :S So my question is ... how to send attributes on server if that would be the ajax call and how to get them on backing bean (see suggestion A code snippet)?

suggestion A :

<h:commandButton id="submit" 
    actionListener="#{userData.attributeListener}" action="result"> 
       <f:ajax>
            <f:attribute/>? how to
       </f:ajax>

    </h:commandButton>

and if there is a good tutorial concerning to this question please do share the link :)

Thanks


Solution

  • OK I just wrote a test which sets attributes out the ajax block as :

    <h:commandButton id="submit" 
        actionListener="#{userData.callWithAttributes}" action="result"> 
           <f:attribute name="a" value="#{testa}"/>
           <f:attribute name="b" value="#{testb}"/>
           <f:ajax .../>
    </h:commandButton>
    

    ...and on the backing bean

    ...
    public void callWithAttributes(ActionEvent e){
      String a=(String) e.getComponent().getAttributes().get("a");
      ...
    }
    ...
    

    Seems like it's working fine :) So attributes should be placed into event-making component block - the h:commandButton in this particular case...