gpt4 book ai didi

ajax - f :ajax action method is not invoked

转载 作者:行者123 更新时间:2023-12-01 06:32:29 25 4
gpt4 key购买 nike

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

这是我的代码片段:


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

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

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

最佳答案

这里,

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

action属性错误。你可能会混淆 <h:commandButton action> .您需要 listener属性。

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

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

这里,

public void generateRequestId(ActionEvent e) 

ActionEvent论点是错误的。你可能会混淆 <h:commandButton actionListener> .您需要 AjaxBehaviorEvent 取而代之的论据。

public void generateRequestId(AjaxBehaviorEvent e) 

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

public void generateRequestId() 

另见:

关于ajax - f :ajax action method is not invoked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12043398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com