gpt4 book ai didi

javascript - 不会为 p :remoteCommand 调用 Action 和 ActionListener

转载 作者:行者123 更新时间:2023-11-30 07:09:14 26 4
gpt4 key购买 nike

我正在使用 p:remoteCommand,它在 updateprocess 方面工作正常,除了它没有调用任何一个 action 方法或 actionListener

Xhtml代码

<h:form id="mainForm">
<h:outputLabel id="tempAge" value="#{remoteBean.tempAge}"/>

<h:inputText id="age" value="#{remoteBean.age}" onkeypress="callRem()">
<f:validateLongRange minimum="18"/>
</h:inputText>

<script type="text/javascript">
var timex=0;
function callRem(){
clearTimeout(timex);
timex = setTimeout("remote()",2000);
}
</script>

<p:remoteCommand name="remote"
process="age"
update="tempAge"
action="#{remoteBean.act}"
actionListener="#{remoteBean.listen}">
</p:remoteCommand>

</h:form>

托管 Bean 代码

@ManagedBean
public class RemoteBean {
private int age=18;
private int tempAge=20;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
System.out.println("Setting age :"+age);
}
public int getTempAge() {
return tempAge;
}
public void setTempAge(int tempAge) {
this.tempAge = tempAge;
}

public void act(){
System.out.println("in action()");
tempAge+=age+2;
}

public void listen(ActionEvent event) {
System.out.println("in Action Listener");
tempAge+=age+2;
}

}

我不知道我哪里做错了,可能是我写的 Javascript 代码。
如果有人遇到并解决了同样的问题,请提供帮助。

使用:Primefaces 3.5

最佳答案

我尝试了您的示例并发现了问题。似乎当你只处理年龄(process="age")时,它只执行年龄输入并忽略 remoteCommand actionListener 和 Action 。所以你可以把它改成:

process="@form" 

process="@this age" 

对我都有效。

附言。我在这里使用了 View 范围。

关于javascript - 不会为 p :remoteCommand 调用 Action 和 ActionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18651487/

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