熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Web編程 >> 正文

AJAX的拼音首字母查找對應中文的portlet

2022-06-13   來源: Web編程 
    在現實生活中我們需要一些系統提供輸入拼音首字母返回與其對應中文的功能這樣可以提高人機交互性以及提高系統的友好性
    結合之前所做的portlet技術還有AJAX讓我們在web應用這塊來說說這個不是太復雜的應用吧
    對於我們的漢字與拼音對應詞庫生成需要如下資源
    首先要一個該系統所屬的中文詞庫
    一份漢字與拼音的對照表
    接下來我們會用這個中文詞庫去匹配漢字與拼音對照表之中的數據找出與各個詞語對應的拼音來然後在這個文件中文詞語後面生成其對應的漢語拼音聲母首字母序列
    首先我們需要用漢字拼音對照表生成體統中文詞庫對應的拼音列表之後我們需要將這個拼音系統詞庫列表存儲到內存之中考慮到效率等綜合因素我們選取了TreeMap這個類它以其優秀的內部結構使得containsKey() get() put() 和 remove()等操作能夠保持其時間復雜度在對數級上即logN為了能夠保持拼音對應漢字的能夠隨著字母的增減而對應顯示我們選用了TreeMap中的SubMap()方法其返回值是一個SortedMap對象這下面的代碼使我從之前的OOo應用中取出的大家改改就可以用了

  


  // XActionListener
  
                public void textChanged(TextEvent rEvent) {
  
                       Object searchTextBox = xControlContainer
  
                                     getControl(searchText);
  
   
 
                      XTextComponent yText = (XTextComponent) UnoRuntimequeryInterface(
 
                                    XTextComponentclass searchTextBox);
 
                      searchString = yTextgetText();
 
                      searchString = searchStringtoLowerCase();
 
                      loggerdebug(searchString is  + searchString);
 
                      Object resultComboBoxModel = xControlContainer
 
                                    getControl(resultComboBox);
 
  
 
                      XComboBox xComboBox = (XComboBox) UnoRuntimequeryInterface(
 
                                    XComboBoxclass resultComboBoxModel);
 
  
 
                      Object label = xControlContainergetControl(Label);
 
                      XFixedText xLabel = (XFixedText) UnoRuntimequeryInterface(
 
                                    XFixedTextclass label);
 
                      char shiftChar = searchStringcharAt(searchStringlength()  );
 
                      shiftChar++;
 
                      String tempString = searchStringsubstring(
 
                                    searchStringlength()  );
 
                      tempString = tempString + shiftChar;
 
                      if (searchStringlength() == )
 
                             tempString =  + shiftChar;
 
                      loggerdebug(tempString is  + tempString);
 
                      SortedMap showMap = (SortedMap) chineseMedicalTermWithPropertyHash
 
                                    subMap(searchString tempString);
 
  
 
                      // xLabelsetText(chineseMedicalTermWithPropertyHashsize()+
 
                      // check);
 
  
 
                      xComboBoxremoveItems((short)  (short) );
 
                      short j = ;
 
                      Iterator it = showMapentrySet(erator();
 
                      while (ithasNext()) {
 
                             MapEntry me = (MapEntry) itnext();
 
                             Object ov = megetValue();
 
                             xComboBoxaddItem(ovtoString() j);
 
                             j++;
 
                      }
 
               }
 

  最重要的在這裡

  SortedMap showMap = (SortedMap) chineseMedicalTermWithPropertyHash

  subMap(searchString tempString);

  是從TreeMap實例中取出在length到length的所有關鍵字組成的一個SortedMap實例它的特性是

  A map that further guarantees that it will be in ascending key order sorted according to the natural ordering of its keys (see the Comparable interface) or by a comparator provided at sorted map creation time This order is reflected when iterating over the sorted maps collection views (returned by the entrySet keySet and values methods) Several additional operations are provided to take advantage of the ordering (This interface is the map analogue of the SortedSet interface)

  而對於AJAX部分來講更是簡單我們知道AJAX與一般的web應用區別就是在它使用了Javascript的一個對象XMLHttpResponse/XMLHttpRequest從而達到了異步的傳輸效果提高了人機交互性在本例中我們沒有使用什麼AJAX的框架而是直接使用了在html標簽中最基本的javascript函數的方式來實現從而達到了異步響應的功能其中解決了一個問題現在說說那就是如果單單要實現AJAX傳輸數據不能夠使用session來傳輸這樣的效果總是會慢一拍為什麼會這樣呢?請大家想想過段時間答復

  至於portlet只要滿足JSR的就行了難度不是太大只要把doView()方法覆蓋了就沒有大問題了的大家可以試試



  本文依據《創作共用約定》之署名禁止派生非商業用途方式發布即你可以免費拷貝分發呈現和表演當前作品但是必須基於以下條款


  署名你必須明確標明作者的名字


  非商業用途你不可將當前作品用於商業目的


  禁止派生你不可更改轉變或者基於此作品重新構造為新作品

  對於任何二次使用或分發你必須讓其他人明確當前作品的授權條款

  在得到作者的明確允許下這裡的某些條款可以放棄


From:http://tw.wingwit.com/Article/program/Web/201311/29851.html
  • 上一篇文章: 没有了

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.