Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSF2的AjaxBehaviorEvent中的Catch键代码_Java_Ajax_Jsf_Jakarta Ee - Fatal编程技术网

Java JSF2的AjaxBehaviorEvent中的Catch键代码

Java JSF2的AjaxBehaviorEvent中的Catch键代码,java,ajax,jsf,jakarta-ee,Java,Ajax,Jsf,Jakarta Ee,我有一个JSF ajax键控事件链接到支持bean中的事件列表器 JSF文件中的代码如下所示 <h:inputText id="txtDescription" value="#{institutionController.current.description}" disabled="#{institutionController.modifyControlDisable}" > <f:ajax event="keyup" listener="#{institution

我有一个JSF ajax键控事件链接到支持bean中的事件列表器

JSF文件中的代码如下所示

<h:inputText id="txtDescription" value="#{institutionController.current.description}" disabled="#{institutionController.modifyControlDisable}" >
    <f:ajax event="keyup" listener="#{institutionController.changeDetailsEvent}" />
</h:inputText>
public void changeDetailsEvent(AjaxBehaviorEvent event) {
}
我想根据按键实现不同的逻辑,如下所示为伪代码

public void changeDetailsEvent(AjaxBehaviorEvent event) {
    If (event.key = Key.enter) {
        do something;
    } else if (event.key = Key.Escape) {
        so something else;
    } else {
        do nothing;
    }

}

有人能告诉我这是如何在支持bean中完成的吗?

AjaxBehaviorEvent不包含任何有关JavaScript
事件的信息。您需要自己传递所需的信息。这可以通过一个隐藏的输入字段来实现,该字段的值将由JavaScript预先填充。比如说,


(请注意,隐藏字段的
id
包含在
execute
中,以便在ajax请求中提交,还请注意,
绑定
用于在
文档中动态获取生成的客户机id。getElementById()
为了设置密钥代码值,您也可以硬编码客户端ID(如果它是固定的)


您可以在中找到所有有效的
keyCode
值的概述。

我们可以在javascript中这样做吗。例如,我想显示alert“您按下了键-'A'”@BalusC:也许这是JSF2.3的建议?我听到越来越多的人这样说。
private String input;
private int keyCode;

public void listener() {
    switch (keyCode) {
        case 13:
            // Enter key was pressed.
            break;
        case 27:
            // Escape key was pressed.
            break;
        default:
            // Other key was pressed.
            break;
    }
}