gpt4 book ai didi

jsf-2 - 按下回车键时 Jsf 从输入文本调用 bean 方法

转载 作者:行者123 更新时间:2023-12-03 11:51:41 26 4
gpt4 key购买 nike

JSF 2.0、Mojarra 2.0.1、PrimeFaces 3.4.1

这是一个 p:inputText当按下回车键时,预期会调用支持 bean 方法的组件。

<p:inputText id="commentInput" rendered="#{status.haveComment}" 
value="#{statusBean.newComment}"
onkeypress="if (event.keyCode == 13) { onchange(); return false; }">
<f:ajax event="change" listener="#{statusBean.test}" />
</p:inputText>

虽然支持 bean 具有以下方法:
public void test(AjaxBehaviorEvent event) {
System.out.println("Pressed enter!");
}

当按下回车键时,它正在调用方法,但它不止于此; 意外行为案例:
--Click input text
----Type some letters
------Click somewhere else in the page
--------CONSOLE: Pressed enter!

我想 ajax event=change以某种方式检测到更改并调用该方法。如何转换此 p:inputText组件到像 Facebook 或其他人这样的适当的评论接收器组件中?

最佳答案

这就是方式如何onchange事件在 HTML 中工作。当输入元素中的文本更改时会发生这种情况,但在组件失去焦点时会触发(在您的情况下,这是您单击页面中其他位置的那一刻)。

您可以定义 p:remoteCommandtest方法,只需写:

<p:remoteCommand name="test" actionListener="#{statusBean.test}"/>
<p:inputText id="commentInput" rendered="#{status.haveComment}"
value="#{statusBean.newComment}"
onkeypress="if (event.keyCode == 13) { test(); return false; }"/>

并在支持 bean 中:
public void test() {
System.out.println("Pressed enter!");
}

关于jsf-2 - 按下回车键时 Jsf 从输入文本调用 bean 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14960047/

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