在JSF iceface的值更改侦听器处获取键代码

在JSF iceface的值更改侦听器处获取键代码,jsf,icefaces,Jsf,Icefaces,我有一个自动完成的输入文本,我想要valueChangeListener上的关键代码,因为我们可以在javascript中通过使用event.getKeyCode获得它。我使用jsf 1.2和icefaces 1.7.2 我想在valuechangelistener上输入键代码 <ice:selectInputText id="AutoCmpTxt11" rows="10" width="300" valueChangeListener="#createJournalVoucherBea

我有一个自动完成的输入文本,我想要valueChangeListener上的关键代码,因为我们可以在javascript中通过使用event.getKeyCode获得它。我使用jsf 1.2和icefaces 1.7.2

我想在valuechangelistener上输入键代码

<ice:selectInputText id="AutoCmpTxt11" rows="10" width="300" 
valueChangeListener="#createJournalVoucherBean.changeDebitAccNameValueChangedListener}"
value="#{createJournalVoucherBean.debitAccount.name}" partialSubmit="true"
autocomplete="true">

你需要它做什么?您已经有了
searchWord
。如果出于某种原因,您只想获得最后一个字符,那么只需使用


下面是enter键检测的示例代码

您可以根据需要为其他按键事件执行此操作

public void changeDebitAccNameValueChangedListener (ValueChangeEvent event) throws InterruptedException {

String searchWord = ((String) event.getNewValue()).trim().toUpperCase();

        //-- Code for key detection

         keyPressedEvent(FacesContext.getCurrentInstance());

        //--
}


    private void keyPressedEvent(FacesContext facesContext) {

                        try {
                            Map requestParemeterMap = facesContext.getExternalContext()
                                    .getRequestParameterMap();
                           KeyEvent keyEvent = new KeyEvent(this , requestParemeterMap);

                            if (keyEvent.getKeyCode() == KeyEvent.CARRIAGE_RETURN) {
                                // do your custom processing
                            }

                        } catch (Exception e) {
                            e.printStackTrace();
                        }
}
char lastChar = searchWord.charAt(searchWord.length() - 1);
public void changeDebitAccNameValueChangedListener (ValueChangeEvent event) throws InterruptedException {

String searchWord = ((String) event.getNewValue()).trim().toUpperCase();

        //-- Code for key detection

         keyPressedEvent(FacesContext.getCurrentInstance());

        //--
}


    private void keyPressedEvent(FacesContext facesContext) {

                        try {
                            Map requestParemeterMap = facesContext.getExternalContext()
                                    .getRequestParameterMap();
                           KeyEvent keyEvent = new KeyEvent(this , requestParemeterMap);

                            if (keyEvent.getKeyCode() == KeyEvent.CARRIAGE_RETURN) {
                                // do your custom processing
                            }

                        } catch (Exception e) {
                            e.printStackTrace();
                        }
}