[Wicket-ja-user 458] Re: AutoCompleteTextFieldでエラー

Back to archive index

Atsushi Kanaya todoa****@gmail*****
2010年 6月 17日 (木) 09:15:11 JST


田中さん

金谷です。

> (b) IE8で 『システム エラー: -1072896658』が出る件
>
> WebApplicationの init()で
>
> getRequestCycleSettings().setResponseRequestEncoding("Windows-31J");
> getMarkupSettings().setDefaultMarkupEncoding("Windows-31J");
>
> を入れるとこのエラーが出るようです。『Windows-31J』が正式名称として間違っている???
>
> ※HTMLファイルのcharsetは『Windows-31J』としています。

Windows-31Jという名称に特に間違いはないと思います。

> getRequestCycleSettings().setResponseRequestEncoding("Windows-31J");

は実際にブラウザに返すレスポンスHTMLの文字コードになります。
この場合はWindows-31jが返ります。
その結果、UTF-8がもっぱら利用されているらしいAjaxと
文字コードの不整合が発生しているのではないか?というのが私の予想です。


> getMarkupSettings().setDefaultMarkupEncoding("Windows-31J");

こちらは、記述しているHTMLファイルの文字コードを指定する部分です。

うちでは、前者はUTF-8、後者はWindows-31jを使っていますが、
そのような設定ではAjax通信周りで問題発生しませんでした。


> (c) IE8での 『wicket-autocomplete.js』 の「引数が無効です」のエラーは解決していません。

確認しましたが、こちらでは上記をコピーしたJavaScriptを使用していました。
Firefoxでの日本語処理対応とかエラー対策とかを独自に入れていたようです。
問題の箇所は下記のように書き換えておりました。

container.style.zIndex=(!isNaN(Number(index))?Number(index)+1:index);


ご参考になれば幸いです。

以上、よろしくお願いします。


2010年6月16日17:10 エルコム 田中 <tanak****@elcom*****>:
> 田中です。
>
> 日本語でのオートコンプリートが解決したのでご報告致します。
>
> (a)日本語を入力した時に無反応だったのは文字化けしたままstartsWithで比較していたため、対応する単語が空となってしまっていたようです。
>
> input = new String(input_sjis.getBytes("ISO8859_1"), "UTF-8");
>
> 文字コードを変換したらちゃんとリストが表示されるようになりました。
>
> (b) IE8で 『システム エラー: -1072896658』が出る件
>
> WebApplicationの init()で
>
> getRequestCycleSettings().setResponseRequestEncoding("Windows-31J");
> getMarkupSettings().setDefaultMarkupEncoding("Windows-31J");
>
> を入れるとこのエラーが出るようです。『Windows-31J』が正式名称として間違っている???
>
> ※HTMLファイルのcharsetは『Windows-31J』としています。
>
> (c) IE8での 『wicket-autocomplete.js』 の「引数が無効です」のエラーは解決していません。
>
>
> ----- 以下日本語オートコンプリート解決ソースコード------------
> AutoCompleteTextField widText_torihikisakiName = new
> AutoCompleteTextField("widText_torihikisakiName", new
> PropertyModel(seibansakuseiFormVo, "torihikisakiName")){
>                @Override
>                protected Iterator<String> getChoices(String input_sjis){
>                if (Strings.isEmpty(input_sjis)) {
>                    List<String> emptyList = Collections.emptyList();
>                    return emptyList.iterator();
>                }
>
>                String input = "";
>                                try {
>                                        input = new String(input_sjis.getBytes("ISO8859_1"), "UTF-8");
>                                } catch (UnsupportedEncodingException e) {
>                                        // TODO 自動生成された catch ブロック
>                                        e.printStackTrace();
>                                }
>
>                List<String> choices = new ArrayList<String>(10);
>
>                Locale[] locales = Locale.getAvailableLocales();
>
>                for (final Locale locale : locales) {
>                    final String country = locale.getDisplayCountry();
>
>                    if (country.toUpperCase().startsWith(input.toUpperCase())) {
>                        choices.add(country);
>                        if (choices.size() == 10) {
>                            break;
>                        }
>                    }
>                }
>                return choices.iterator();
>            }
>        };
>        widForm_seibanShinkisakusei.add(widText_torihikisakiName);
>
> -----------------------------------------------------------------------------------------------
>
> _______________________________________________
> Wicket-ja-user mailing list
> Wicke****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user
>




Wicket-ja-user メーリングリストの案内
Back to archive index