f:ajax d'action de la méthode n'est pas appelée

Je suis en utilisant JSF2, avec de riches visages 4. Mon but est d'afficher un numéro de demande qui est généré à partir d'une méthode dans le backend dans un champ de saisie de texte à l'aide d'ajax.

Ici est extrait de mon code:


....
    <h:outputText value="Drawer No" /> 
    <h:outputText value="*" style="color:#ff0000;"/> 
    <h:inputText id="drawer" value="#{requestBean.drawerNumber}" required="true" 
         requiredMessage="Please enter drawer number">
        <f:ajax event="change" action="#{requestBean.generateRequestId}" 
            execute="@form" render="requestId"/>
    </h:inputText>

    <h:outputText value="Request Id" /> 
    <h:inputText id="requestId" value="#{requestBean.requestId}"  readonly="true" required="true" >
    </h:inputText>
</td>
<td>
    <h:message for="requestId"  style="color:red;font-size:10pt"/>
....

Bean:

public void generateRequestId(ActionEvent e) 
{
    FacesContext context = FacesContext.getCurrentInstance();
    HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
    String emp=(String) session.getAttribute("loginUser");
    System.out.println("inside ajax event" + emp);
    try {
        requestId = AdminDAO.getRequestId(emp);
    } catch (ParseException e1) {
        e1.printStackTrace();
    }
}

Une fois que la méthode est appelée, elle serait de générer un ID de la demande qui doit rendus retour à l'ID de la demande.

Ce code n'est pas même l'appel de la méthode, et si j'utilise <a4j:ajax au lieu de f:ajax, il me dit que la méthode n'est pas présent.

Si d'autres façons de le faire est aussi très bien pour moi

OriginalL'auteur user1612507 | 2012-08-20