【问题标题】:f:ajax action method is not invokedf:ajax 动作方法没有被调用
【发布时间】:2012-08-16 02:55:38
【问题描述】:

我正在使用具有丰富面孔的 JSF2 4。我的目标是使用 ajax 将后端方法生成的请求 ID 显示到输入文本字段中。

这是我的代码的 sn-p:


....
    <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"/>
....

豆子:

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();
    }
}

一旦调用该方法,它会生成一个请求ID,该请求ID需要返回到请求ID。

这段代码甚至没有调用方法,如果我使用&lt;a4j:ajax而不是f:ajax,它告诉我方法不存在。

【问题讨论】:

  • 如果有其他方法也适合我

标签: ajax jsf-2 richfaces


【解决方案1】:

这里,

<f:ajax event="change" action="#{requestBean.generateRequestId}" 
    execute="@form" render="requestId"/>

action 属性错误。您可能对&lt;h:commandButton action&gt; 感到困惑。您需要 listener 属性。

<f:ajax listener="#{requestBean.generateRequestId}" 
    execute="@form" render="requestId" />

(请注意,我删除了event 属性;如果是&lt;h:inputText&gt;,它已经默认为change

这里,

public void generateRequestId(ActionEvent e) 

ActionEvent 参数是错误的。您可能对&lt;h:commandButton actionListener&gt; 感到困惑。您需要 AjaxBehaviorEvent 参数。

public void generateRequestId(AjaxBehaviorEvent e) 

如果您不需要其中的任何内容,您也可以在必要时将其完全删除。这是可选的。

public void generateRequestId() 

另见:

【讨论】:

    猜你喜欢
    • 2011-07-20
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 2011-08-28
    • 2017-02-24
    相关资源
    最近更新 更多