获取JSF iceface的值更改侦听器的密钥代码

时间:2010-11-12 05:28:06

标签: jsf icefaces

我有一个自动完成输入文本,因为我想在valueChangeListener上使用关键代码,因为我们可以使用event.getKeyCode在javascript中获取它。我使用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">

这里的听众如下。

 public void changeDebitAccNameValueChangedListener (ValueChangeEvent event) throws InterruptedException {
    String searchWord = ((String) event.getNewValue()).trim().toUpperCase();
    //Here I want event.getkeycode like that.
}

2 个答案:

答案 0 :(得分:0)

你需要什么?您已经拥有searchWord。如果您想要的只是出于某种原因获得最后一个字符,那么只需使用String#charAt()

char lastChar = searchWord.charAt(searchWord.length() - 1);

答案 1 :(得分:0)

以下是进入密钥检测的示例代码。

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

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