From tanaka @ elcom.co.jp Fri Jun 11 12:46:21 2010 From: tanaka @ elcom.co.jp (=?ISO-2022-JP?B?GyRCJSglayUzJWAhIUVEQ2YbKEI=?=) Date: Fri, 11 Jun 2010 12:46:21 +0900 Subject: [Wicket-ja-user 447] =?iso-2022-jp?b?QXV0b0NvbXBsZXRlVGV4dEZpZWxkGyRCJEclKCVpITwbKEI=?= Message-ID: 田中です。 WicketでAutoCompleteTextFieldを使ってフォームのテキストフィールドにオートコンプリート機能を付けようとしたのですが、ブラウザによって以下(a)(b)のような状態となってしまいます。Wicket のバージョンは1.4です。 原因がわかりません。 (a) IE(Ver.8)の場合 テキストフィールドに文字を入れたタイミングで下記のエラーが出ます。 ----- ↓エラー内容 ----- Web ページ エラーの詳細 ユーザー エージェント: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB6.5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) タイムスタンプ: Fri, 11 Jun 2010 03:13:42 UTC メッセージ: システム エラー: -1072896658 ライン: 923 文字: 5 コード: 0 URI: http://127.0.0.1:8080/EwgsWeb/resources/org.apache.wicket.ajax.WicketAjaxReference/wicket-ajax.js ----- ↑エラー内容 ----- (b)Chrome(Ver.5)の場合 エラーは出ず、ローマ字のオートコンプリートはうまくいくのですが、日本語だと候補が表示されません。 ------ ↓ソース------------------------------------------------------------------------------------------------------ ・・・ AutoCompleteTextField widText_torihikisakiName = new AutoCompleteTextField("widText_torihikisakiName", new PropertyModel(seibansakuseiFormVo, "torihikisakiName")) { private List names = Arrays.asList(new String[] { "Japan", "Java", "あああ", "あああい", "うううう", "うううえ", "ううえ" }); protected Iterator getChoices(String input) { List probables = new ArrayList(); Iterator iter = names.iterator(); while (iter.hasNext()) { String name = (String) iter.next(); if (name.startsWith(input)) { probables.add(name); } } return probables.iterator(); } }; widForm_seibanShinkisakusei.add(widText_torihikisakiName); ・・・ ------ ↑ソース------------------------------------------------------------------------------------------------------ From t_yano @ me.com Sat Jun 12 07:00:34 2010 From: t_yano @ me.com (Tsutomu Yano) Date: Sat, 12 Jun 2010 07:00:34 +0900 Subject: [Wicket-ja-user 448] Re: =?iso-2022-jp?b?GyRCSXRKLDk5PzckRyROGyhCSFRNTBskQiVYJUMbKEI=?= =?iso-2022-jp?b?GyRCJUAhPCROQWA6biRLJEQkJCRGGyhC?= In-Reply-To: <4BCC25EB.7060302@stationp.co.jp> References: <4BCC25EB.7060302@stationp.co.jp> Message-ID: <7C83FCDC-DA3C-47AE-B30D-B47F74E497F8@me.com> 矢野です。 次のポストは,私はメールしたつもりだったのですが,今日メールボックスに残っていることに気がついたものです。 もう一ヶ月以上前のものへの返信になりますが,一応,再ポストしておきます。 --------------------- 矢野です。 Panelはあらかじめページのどこかにaddされていると考えてよろしいでしょうか? また,DatePickerはあらかじめPanelにaddされているとかんがえてよろしいでしょうか? あと,表示状態はどうでしょうか。 アコーディオン上になっているのであれば,初期状態ではDatePickerは非表示なのでしょうが,メニューが選ばれたときにはじめてPanelにaddしているのでしょうか? 最初は使わない場合でも,Panelにはaddしておいて,isVisibleをオーバーライドすることで非表示と表示状態を切り替えるようにしてみたらどうなるでしょうか?  この場合,DatePicker,もしくはその親パネルのsetOutputMarkupPlaceholderTag(true)を呼び出すのを忘れないようにしてください。通常,Wicketはvisibleプロパティがfalseのコンポーネントに対してはタグの出力自体をやめます。setOutputMarkupPlaceholderTag(true)を呼び出しておくと,タグは生成され,styleによって非表示となるので,動的に表示・非表示を切り替えられるようになります。  ページのレンダリングフェーズでコンポーネントがどこにも存在しないからじゃないかというのが私の勘なんですが,もしそのとおりであれば,上記のようにコンポーネントをaddしてやることで,レンダリングフェーズに確実にコンポーネントが存在する状態をつくることができますね。  もし「パネルを全部一気に作ると処理が重い」などの理由があるのであれば,AjaxLazyLoadPanelの使用を考えてみてはいかがでしょうか。getLazyLoadComponent()をオーバーライドするだけで,遅延初期化されるパネルをつくることができます。 On 2010/04/19, at 18:44, 金城 伸之 wrote: > kinjonです。 > 初めて投稿させてもらいます。 > > 掲題の件ですが、 > ページのレイアウトがヘッダー、左側にアコーディオン型のメニュー、 > 右側にコンテンツ部分があります。 > > メニューを押下げ時にコンテンツ部分を非同期で更新 > させていますが、コンテンツに含まれるJavaScriptライブラリを含む > コンポーネントのJavaScriptがHEADタグに入ってきてくれません。 > > コンテンツ部分はPanelで、JavaScriptライブラリを含むコンポーネントは > Wicket-extensionsのDatePickerを使用しています。 > > DatePickerはIHeaderContributorを実装しておりますので、 > HEADタグを更新してくれるとおもったのですが、更新されません。 > > 調べていたんですが分からないので > 分る方がいらっしゃいましたら、よろしくお願いします。 > > _______________________________________________ > Wicket-ja-user mailing list > Wicket-ja-user @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user From filipo2006 @ gmail.com Tue Jun 15 13:57:50 2010 From: filipo2006 @ gmail.com (ozawa) Date: Tue, 15 Jun 2010 13:57:50 +0900 Subject: [Wicket-ja-user 449] =?iso-2022-jp?b?RGlza1BhZ2VTdG9yZRskQiROJVUlISUkJWskSzRYJDcbKEI=?= =?iso-2022-jp?b?GyRCJEYbKEI=?= Message-ID: 小沢と申します。 システム開発案件でWicketを利用しております。 利用バージョン:Wicket1.4.8 DiskPageStoreのファイルの扱いについて以下質問させてください。 Q1.サーバーの起動、停止時やシステムログアウト後に何もしないとファイルが    増え続けるように思いますが、不要ファイルの削除機能は存在しますか?    存在する場合、設定等ご教授いただけないでしょうか? Q2.存在しない場合、みなさんはどのように不要なファイルを削除されていますか? 実際のシステム運用環境においては、ディスク使用量の問題や見積もり時の容量検討など 対処が必要な事項だと思っております。 よい方法をご存じの方がいらっしゃいましたらご教授いただければ幸いです。 From t_yano @ me.com Wed Jun 16 07:28:42 2010 From: t_yano @ me.com (Tsutomu Yano) Date: Wed, 16 Jun 2010 07:28:42 +0900 Subject: [Wicket-ja-user 450] Re: =?iso-2022-jp?b?QXV0b0NvbXBsZXRlVGV4dEZpZWxkGyRCJEclKCVpGyhC?= =?iso-2022-jp?b?GyRCITwbKEI=?= In-Reply-To: References: Message-ID: <42FDFA48-5839-4309-8736-337758B50AAB@me.com> 矢野です。 IE8を入れている環境がなく,オートコンプリートについても詳しくないもので,原因はよくわからないです。 ただ,オートコンプリートと日本語については,もともと相性が悪いという話を聞いたような気がします。 しかし,オートコンプリートではないものの,入力に応じて表示が切り替わるというインタフェースは作ったことがあり,IE7, Safari, Firefoxでは動くようでした。ChromeとIE8では確認したことがないので,参考にならないですね。。 オートコンプリートに詳しい人の回答に期待。 On 2010/06/11, at 12:46, エルコム 田中 wrote: > 田中です。 > > WicketでAutoCompleteTextFieldを使ってフォームのテキストフィールドにオートコンプリート機能を付けようとしたのですが、ブラウザによって以下(a)(b)のような状態となってしまいます。Wicket > のバージョンは1.4です。 > > 原因がわかりません。 > > > (a) IE(Ver.8)の場合 > テキストフィールドに文字を入れたタイミングで下記のエラーが出ます。 > > ----- ↓エラー内容 ----- > Web ページ エラーの詳細 > > ユーザー エージェント: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; > Trident/4.0; GTB6.5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT > 5.1; SV1) ; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR > 3.0.30729; Media Center PC 6.0) > タイムスタンプ: Fri, 11 Jun 2010 03:13:42 UTC > > メッセージ: システム エラー: -1072896658 > > ライン: 923 > 文字: 5 > コード: 0 > URI: http://127.0.0.1:8080/EwgsWeb/resources/org.apache.wicket.ajax.WicketAjaxReference/wicket-ajax.js > ----- ↑エラー内容 ----- > > (b)Chrome(Ver.5)の場合 > エラーは出ず、ローマ字のオートコンプリートはうまくいくのですが、日本語だと候補が表示されません。 > > > > ------ ↓ソース------------------------------------------------------------------------------------------------------ > ・・・ > AutoCompleteTextField widText_torihikisakiName = new > AutoCompleteTextField("widText_torihikisakiName", new > PropertyModel(seibansakuseiFormVo, "torihikisakiName")) { > private List names = Arrays.asList(new String[] { "Japan", > "Java", "あああ", "あああい", "うううう", "うううえ", "ううえ" }); > > protected Iterator getChoices(String input) { > List probables = new ArrayList(); > Iterator iter = names.iterator(); > while (iter.hasNext()) { > String name = (String) iter.next(); > if (name.startsWith(input)) { > probables.add(name); > } > } > return probables.iterator(); > } > }; > widForm_seibanShinkisakusei.add(widText_torihikisakiName); > ・・・ > > ------ ↑ソース------------------------------------------------------------------------------------------------------ > > _______________________________________________ > Wicket-ja-user mailing list > Wicket-ja-user @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user From t_yano @ me.com Wed Jun 16 08:37:23 2010 From: t_yano @ me.com (Tsutomu Yano) Date: Wed, 16 Jun 2010 08:37:23 +0900 Subject: [Wicket-ja-user 451] Re: =?iso-2022-jp?b?RGlza1BhZ2VTdG9yZRskQiROJVUlISUkJWskSzRYGyhC?= =?iso-2022-jp?b?GyRCJDckRhsoQg==?= In-Reply-To: References: Message-ID: <79482CC1-1D52-4A72-8CAC-CF2DB6386B32@me.com> 矢野です。 DiskPageStoreの使うキャッシュファイルは,セッション毎にファイルサイズが一定サイズよりも大きくなると(デフォルトで100MB),古いデータから順に削除されて,常に一定サイズに収まります。DiskPageStoreのコンストラクタで上限サイズを指定することが出来ます。 さらに,ユーザがログアウト操作をしなかった場合でも,セッションファイルはWicketによって破棄されます。 ユーザがログアウトしなくとも,Servlet Containerに設定したセッション維持期間を過ぎれば,HttpSessionはServlet Containerが無効にします。 WicketのAbstractHttpSessionStore.SessionBindingListenerがサーブレット仕様にあるHttpSessionBindingListenerインタフェースを実装しており,WicketのSessionが生成されると同時にHttpSessionに格納されます。コンテナがHttpSessionを破棄しようとすると,合わせてHttpSessionに格納されたSessionBindingListenerが破棄されるため,SessionBindingListenerに破棄通知が行われます。Wicketはこの破棄通知を利用して,DiskPageStoreの使用していたセッションファイルを破棄します。 なので,私は「不要ファイルを消す」という操作自体が必要ないと思います。Wicketが適時削除するでしょうから。 DiskPageStoreの使用するファイルサイズが気になるのであれば,WebApplicationクラスのnewSessionStore()メソッドをオーバーライドすることで,DiskPageStoreのサイズを制御することができます。デフォルトでは次のように,サイズ無指定のコンストラクタが使用されています。 @Override protected ISessionStore newSessionStore() { return new SecondLevelCacheSessionStore(this, new DiskPageStore()); } この場合,デフォルト値としてセッションあたり100MBとなります。 オーバーライドして,DiskPageStoreのコンストラクタにサイズを指定すると,上限サイズを変えることが出来ます。 以上で回答になるでしょうか。 On 2010/06/15, at 13:57, ozawa wrote: > 小沢と申します。 > システム開発案件でWicketを利用しております。 > > 利用バージョン:Wicket1.4.8 > > DiskPageStoreのファイルの扱いについて以下質問させてください。 > > Q1.サーバーの起動、停止時やシステムログアウト後に何もしないとファイルが >    増え続けるように思いますが、不要ファイルの削除機能は存在しますか? >    存在する場合、設定等ご教授いただけないでしょうか? > > Q2.存在しない場合、みなさんはどのように不要なファイルを削除されていますか? > > > 実際のシステム運用環境においては、ディスク使用量の問題や見積もり時の容量検討など > 対処が必要な事項だと思っております。 > よい方法をご存じの方がいらっしゃいましたらご教授いただければ幸いです。 > > _______________________________________________ > Wicket-ja-user mailing list > Wicket-ja-user @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user --------------------------------------------------- 矢野 勉(やの つとむ) 電子メール: t_yano @ me.com --------------------------------------------------- From todoa2c @ gmail.com Wed Jun 16 08:55:02 2010 From: todoa2c @ gmail.com (Atsushi Kanaya) Date: Wed, 16 Jun 2010 08:55:02 +0900 Subject: [Wicket-ja-user 452] Re: =?iso-2022-jp?b?QXV0b0NvbXBsZXRlVGV4dEZpZWxkGyRCJEclKCVpGyhC?= =?iso-2022-jp?b?GyRCITwbKEI=?= In-Reply-To: <42FDFA48-5839-4309-8736-337758B50AAB@me.com> References: <42FDFA48-5839-4309-8736-337758B50AAB@me.com> Message-ID: 金谷です。 私の環境はオートコンプリート+日本語を問題なく使えています。 以前、WicketのAjax通信が常にUTF-8で送られ、 HTMLの文字コードがそれ以外(Windows-31j他)だと 文字化けが発生する云々の問題があったと記憶しています。 (ちなみに私の環境では文字コードをすべてUTF-8を使うようにしています) そういう訳で、HTMLの文字コードを確認してみてはいかがでしょうか? また、HTTPモニタ(Fiddler2など)でHTTP通信を確認し、 そこで文字化けが発生していないかの確認もしてみてはいかがでしょうか。 以上、よろしくお願いします。 2010年6月16日7:28 Tsutomu Yano : > 矢野です。 > > IE8を入れている環境がなく,オートコンプリートについても詳しくないもので,原因はよくわからないです。 > > ただ,オートコンプリートと日本語については,もともと相性が悪いという話を聞いたような気がします。 > しかし,オートコンプリートではないものの,入力に応じて表示が切り替わるというインタフェースは作ったことがあり,IE7, Safari, Firefoxでは動くようでした。ChromeとIE8では確認したことがないので,参考にならないですね。。 > > オートコンプリートに詳しい人の回答に期待。 > > > On 2010/06/11, at 12:46, エルコム 田中 wrote: > >> 田中です。 >> >> WicketでAutoCompleteTextFieldを使ってフォームのテキストフィールドにオートコンプリート機能を付けようとしたのですが、ブラウザによって以下(a)(b)のような状態となってしまいます。Wicket >> のバージョンは1.4です。 >> >> 原因がわかりません。 >> >> >> (a) IE(Ver.8)の場合 >> テキストフィールドに文字を入れたタイミングで下記のエラーが出ます。 >> >> ----- ↓エラー内容 ----- >> Web ページ エラーの詳細 >> >> ユーザー エージェント: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; >> Trident/4.0; GTB6.5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT >> 5.1; SV1) ; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR >> 3.0.30729; Media Center PC 6.0) >> タイムスタンプ: Fri, 11 Jun 2010 03:13:42 UTC >> >> メッセージ: システム エラー: -1072896658 >> >> ライン: 923 >> 文字: 5 >> コード: 0 >> URI: http://127.0.0.1:8080/EwgsWeb/resources/org.apache.wicket.ajax.WicketAjaxReference/wicket-ajax.js >> ----- ↑エラー内容 ----- >> >> (b)Chrome(Ver.5)の場合 >> エラーは出ず、ローマ字のオートコンプリートはうまくいくのですが、日本語だと候補が表示されません。 >> >> >> >> ------ ↓ソース------------------------------------------------------------------------------------------------------ >> ・・・ >> AutoCompleteTextField widText_torihikisakiName = new >> AutoCompleteTextField("widText_torihikisakiName", new >> PropertyModel(seibansakuseiFormVo, "torihikisakiName")) { >> private List names = Arrays.asList(new String[] { "Japan", >> "Java", "あああ", "あああい", "うううう", "うううえ", "ううえ" }); >> >> protected Iterator getChoices(String input) { >> List probables = new ArrayList(); >> Iterator iter = names.iterator(); >> while (iter.hasNext()) { >> String name = (String) iter.next(); >> if (name.startsWith(input)) { >> probables.add(name); >> } >> } >> return probables.iterator(); >> } >> }; >> widForm_seibanShinkisakusei.add(widText_torihikisakiName); >> ・・・ >> >> ------ ↑ソース------------------------------------------------------------------------------------------------------ >> >> _______________________________________________ >> Wicket-ja-user mailing list >> Wicket-ja-user @ lists.sourceforge.jp >> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user > > _______________________________________________ > Wicket-ja-user mailing list > Wicket-ja-user @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user > From tanaka @ elcom.co.jp Wed Jun 16 10:36:57 2010 From: tanaka @ elcom.co.jp (=?ISO-2022-JP?B?GyRCJSglayUzJWAhIUVEQ2YbKEI=?=) Date: Wed, 16 Jun 2010 10:36:57 +0900 Subject: [Wicket-ja-user 453] Re: =?iso-2022-jp?b?QXV0b0NvbXBsZXRlVGV4dEZpZWxkGyRCJEclKCVpGyhC?= =?iso-2022-jp?b?GyRCITwbKEI=?= Message-ID: 田中です。 『 システム エラー: -1072896658 』 につきましては金谷さんのご指摘のように文字コードが原因だったようです。HTMLのcharsetをあれこれ変更していたら出なくなりました。ただ、結局もとの『Windows-31j』に戻しても出なくなったのではっきりとした原因はわかりません。 (a)日本語のオートコンプリートについてはまだうまくいっていませんがこれはもうすこし調べてみます。 (b)ローマ字によるオートコンプリートについて、IE8で別のエラーが発生するようになりました。chrome5では正常に動きます。 wicket-autocomplete.jsの306行目でエラーが発生しているようなのですが、このファイルがどこにあるのかわかりません。 --------------- ↓エラー ----------------------------------------------------------------------- ユーザー エージェント: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB6.5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) タイムスタンプ: Wed, 16 Jun 2010 01:23:07 UTC メッセージ: 引数が無効です。 ライン: 306 文字: 9 コード: 0 URI: http://127.0.0.1:8080/EwgsWeb/resources/org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteBehavior/wicket-autocomplete.js --------------- ↑エラー ----------------------------------------------------------------------- From todoa2c @ gmail.com Wed Jun 16 11:00:02 2010 From: todoa2c @ gmail.com (Atsushi Kanaya) Date: Wed, 16 Jun 2010 11:00:02 +0900 Subject: [Wicket-ja-user 454] Re: =?iso-2022-jp?b?QXV0b0NvbXBsZXRlVGV4dEZpZWxkGyRCJEclKCVpGyhC?= =?iso-2022-jp?b?GyRCITwbKEI=?= In-Reply-To: References: Message-ID: 田中さん 金谷です。 > wicket-autocomplete.jsの306行目でエラーが発生しているようなのですが、このファイルがどこにあるのかわかりません。 wicket-extensions-(version).jarの、 org/apache/ org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js に入っております。 ところで雑談ですが、ローマ字から日本語を検索するMigemoのJava版を 合わせて使うと、オートコンプリートが割とリッチになったりします。 http://v2c.s50.xrea.com/jmigemo/ Migemoの動き的には、 ローマ字→正規表現を生成→正規表現にマッチする文字列を探す みたいな動きなので、AutoCompleteTextFieldに渡ってくるローマ字を J/Migemoで正規表現に変換し、あとはマッチするものだけを出力する、 などとすると便利ですね。 私のところでは諸事情によりまだ使えていませんが、参考までに。 以上、よろしくお願いします。 2010年6月16日10:36 エルコム 田中 : > 田中です。 > > 『 システム エラー: -1072896658 』 > につきましては金谷さんのご指摘のように文字コードが原因だったようです。HTMLのcharsetをあれこれ変更していたら出なくなりました。ただ、結局もとの『Windows-31j』に戻しても出なくなったのではっきりとした原因はわかりません。 > > (a)日本語のオートコンプリートについてはまだうまくいっていませんがこれはもうすこし調べてみます。 > > (b)ローマ字によるオートコンプリートについて、IE8で別のエラーが発生するようになりました。chrome5では正常に動きます。 > > wicket-autocomplete.jsの306行目でエラーが発生しているようなのですが、このファイルがどこにあるのかわかりません。 > > --------------- ↓エラー > ----------------------------------------------------------------------- > ユーザー エージェント: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; > Trident/4.0; GTB6.5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT > 5.1; SV1) ; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR > 3.0.30729; Media Center PC 6.0) > タイムスタンプ: Wed, 16 Jun 2010 01:23:07 UTC > > > メッセージ: 引数が無効です。 > ライン: 306 > 文字: 9 > コード: 0 > URI: http://127.0.0.1:8080/EwgsWeb/resources/org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteBehavior/wicket-autocomplete.js > --------------- ↑エラー > ----------------------------------------------------------------------- > > _______________________________________________ > Wicket-ja-user mailing list > Wicket-ja-user @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user > From tanaka @ elcom.co.jp Wed Jun 16 12:43:42 2010 From: tanaka @ elcom.co.jp (=?ISO-2022-JP?B?GyRCJSglayUzJWAhIUVEQ2YbKEI=?=) Date: Wed, 16 Jun 2010 12:43:42 +0900 Subject: [Wicket-ja-user 455] Re: =?iso-2022-jp?b?QXV0b0NvbXBsZXRlVGV4dEZpZWxkGyRCJEclKCVpGyhC?= =?iso-2022-jp?b?GyRCITwbKEI=?= Message-ID: 田中です。 > wicket-extensions-(version).jarの、 > org/apache/ > org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js > > に入っております。 ありがとうございます。 早速見てみたところ以下の306行目は以下の箇所ということがわかりました。 ここで「引数が無効です」のエラーになっているというのがよくわかりません。 ----------------------------------------------------------------------------------------------- function showAutoComplete(){ var position=getPosition(wicketGet(elementId)); var container = getAutocompleteContainer(); var input=wicketGet(elementId); var index=getOffsetParentZIndex(elementId); container.show(); container.style.zIndex=(Number(index)!=Number.NaN?Number(index)+1:index); ← 306行目 container.style.left=position[0]+'px'; container.style.top=(input.offsetHeight+position[1])+'px'; if(cfg.adjustInputWidth) container.style.width=input.offsetWidth+'px'; visible=1; hideShowCovered(); } ----------------------------------------------------------------------------------------------- > ところで雑談ですが、ローマ字から日本語を検索するMigemoのJava版を > 合わせて使うと、オートコンプリートが割とリッチになったりします。 > > http://v2c.s50.xrea.com/jmigemo/ J/Migemo おもしろそうですね。 日本語のオートコンプリートがうまくいったら試してみたいです。 From tanaka @ elcom.co.jp Wed Jun 16 17:10:45 2010 From: tanaka @ elcom.co.jp (=?ISO-2022-JP?B?GyRCJSglayUzJWAhIUVEQ2YbKEI=?=) Date: Wed, 16 Jun 2010 17:10:45 +0900 Subject: [Wicket-ja-user 456] Re: =?iso-2022-jp?b?QXV0b0NvbXBsZXRlVGV4dEZpZWxkGyRCJEclKCVpGyhC?= =?iso-2022-jp?b?GyRCITwbKEI=?= In-Reply-To: References: Message-ID: 田中です。 日本語でのオートコンプリートが解決したのでご報告致します。 (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 getChoices(String input_sjis){ if (Strings.isEmpty(input_sjis)) { List 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 choices = new ArrayList(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); ----------------------------------------------------------------------------------------------- From filipo2006 @ gmail.com Wed Jun 16 17:34:49 2010 From: filipo2006 @ gmail.com (ozawa) Date: Wed, 16 Jun 2010 17:34:49 +0900 Subject: [Wicket-ja-user 457] Re: =?iso-2022-jp?b?RGlza1BhZ2VTdG9yZRskQiROJVUlISUkJWskSzRYGyhC?= =?iso-2022-jp?b?GyRCJDckRhsoQg==?= In-Reply-To: <79482CC1-1D52-4A72-8CAC-CF2DB6386B32@me.com> References: <79482CC1-1D52-4A72-8CAC-CF2DB6386B32@me.com> Message-ID: 矢野さん ご説明ありがとうございます。大変参考になりました。 サーブレットコンテナのセッション管理と同期されているということですね。 > ユーザがログアウトしなくとも,Servlet Containerに設定したセッション維持期間を過ぎれば,HttpSessionはServlet Containerが無効にします。 > WicketのAbstractHttpSessionStore.SessionBindingListenerがサーブレット仕様にあるHttpSessionBindingListenerインタフェースを実装しており,WicketのSessionが生成されると同時にHttpSessionに格納されます。コンテナがHttpSessionを破棄しようとすると,合わせてHttpSessionに格納されたSessionBindingListenerが破棄されるため,SessionBindingListenerに破棄通知が行われます。Wicketはこの破棄通知を利用して,DiskPageStoreの使用していたセッションファイルを破棄します。 > > なので,私は「不要ファイルを消す」という操作自体が必要ないと思います。Wicketが適時削除するでしょうから。 ただ、ご説明の仕様は、通常運用時はいいのですがサーバーの停止時にセッションを保持して、起動時に復元する機能(session persistence)が有効になっていることが前提の話と思います。 サーブレットコンテナやWebアプリのセッション復元設定次第では、「ファイルの削除を実施する必要あり」ということになると思います。 Webアプリが起動するタイミングでfilestoreを初期化する(空にする)といったことを実施したいと思うのですが、良い案や設定で可能などありましたらご教授願えれば幸いです。 #DiskPageStoreの使用するファイルサイズに関しては、矢野さんの著書を拝見しており設定可能な点、理解しております。ありがとうございます。 From todoa2c @ gmail.com Thu Jun 17 09:15:11 2010 From: todoa2c @ gmail.com (Atsushi Kanaya) Date: Thu, 17 Jun 2010 09:15:11 +0900 Subject: [Wicket-ja-user 458] Re: =?iso-2022-jp?b?QXV0b0NvbXBsZXRlVGV4dEZpZWxkGyRCJEclKCVpGyhC?= =?iso-2022-jp?b?GyRCITwbKEI=?= In-Reply-To: References: Message-ID: 田中さん 金谷です。 > (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 エルコム 田中 : > 田中です。 > > 日本語でのオートコンプリートが解決したのでご報告致します。 > > (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 getChoices(String input_sjis){ > if (Strings.isEmpty(input_sjis)) { > List 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 choices = new ArrayList(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 > Wicket-ja-user @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user > From tanaka @ elcom.co.jp Thu Jun 17 11:31:03 2010 From: tanaka @ elcom.co.jp (=?ISO-2022-JP?B?GyRCJSglayUzJWAhIUVEQ2YbKEI=?=) Date: Thu, 17 Jun 2010 11:31:03 +0900 Subject: [Wicket-ja-user 459] Re: =?iso-2022-jp?b?QXV0b0NvbXBsZXRlVGV4dEZpZWxkGyRCJEclKCVpGyhC?= =?iso-2022-jp?b?GyRCITwbKEI=?= Message-ID: 金谷 様 田中です。 >> (c) IE8での 『wicket-autocomplete.js』 の「引数が無効です」のエラーは解決していません。 > > 確認しましたが、こちらでは上記をコピーしたJavaScriptを使用していました。 > Firefoxでの日本語処理対応とかエラー対策とかを独自に入れていたようです。 > 問題の箇所は下記のように書き換えておりました。 > > container.style.zIndex=(!isNaN(Number(index))?Number(index)+1:index); 306行目、上記のように変更したところIE8でのエラーが出なくなりました。 IE8で問題なく動くようになりました。 ありがとうございます。 From t_yano @ me.com Fri Jun 25 15:22:00 2010 From: t_yano @ me.com (Tsutomu YANO) Date: Thu, 24 Jun 2010 23:22:00 -0700 (PDT) Subject: [Wicket-ja-user 460] Re: =?iso-8859-1?q?DiskPageStore=3F=3F=3F=3F=3F=3F=3F=3F=3F?= In-Reply-To: Message-ID: 矢野です。忙しくて遅れましたすみません。 ちょっと調べてみたのですが、DiskPageStore自体にはストアファイルを削除するためのメソッドは用意されていないようでした。 しかしDiskPageStoreが使用するディレクトリは、protectedなメソッド「getFileStoreFolder()」で取得できるようですので、DiskPageStoreのサブクラスを作り、削除メソッドを追加することは可能だと思います。 サブクラスにdeleteFileStore()といったメソッドを用意し、getFileStoreFolder()の返すディレクトリをまるごと削除するようにしたらどうでしょう。サブクラスのコンストラクタ内で、そのメソッドを呼び出します。 ApplicationのnewSessionStore()をオーバーライドし、SecondLevelCacheSessionStoreに渡すDiskPageStoreオブジェクトを上記のサブクラスのものにかえてやれば、アプリケーションが起動してセッションストアが生成されるタイミングで、キャッシュファイルが削除されるようになるでしょう。 セッションストアの生成はアプリケーション起動時に一度だけ実行されますので、稼働中にキャッシュファイルが削除されることもないでしょう。 実際に上記のようなクラスを作ったわけではないので、若干穴があるかもしれませんが、ソースを追った限りでは上記の構成で行けるように思います。 いかがでしょうか。 --------------------- 矢野 勉(やの つとむ) t_yano @ me.com benbrand @ mac.com 2010年6月16日 05:34PM、ozawa のメッセージ: 矢野さん ご説明ありがとうございます。大変参考になりました。 サーブレットコンテナのセッション管理と同期されているということですね。 > ユーザがログアウトしなくとも,Servlet Containerに設定したセッション維持期間を過ぎれば,HttpSessionはServlet Containerが無効にします。 > WicketのAbstractHttpSessionStore.SessionBindingListenerがサーブレット仕様にあるHttpSessionBindingListenerインタフェースを実装しており,WicketのSessionが生成されると同時にHttpSessionに格納されます。コンテナがHttpSessionを破棄しようとすると,合わせてHttpSessionに格納されたSessionBindingListenerが破棄されるため,SessionBindingListenerに破棄通知が行われます。Wicketはこの破棄通知を利用して,DiskPageStoreの使用していたセッションファイルを破棄します。 > > なので,私は「不要ファイルを消す」という操作自体が必要ないと思います。Wicketが適時削除するでしょうから。 ただ、ご説明の仕様は、通常運用時はいいのですがサーバーの停止時にセッションを保持して、起動時に復元する機能(session persistence)が有効になっていることが前提の話と思います。 サーブレットコンテナやWebアプリのセッション復元設定次第では、「ファイルの削除を実施する必要あり」ということになると思います。 Webアプリが起動するタイミングでfilestoreを初期化する(空にする)といったことを実施したいと思うのですが、良い案や設定で可能などありましたらご教授願えれば幸いです。 #DiskPageStoreの使用するファイルサイズに関しては、矢野さんの著書を拝見しており設定可能な点、理解しております。ありがとうございます。 _______________________________________________ Wicket-ja-user mailing list Wicket-ja-user @ lists.sourceforge.jp http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user -------------- next part -------------- HTMLの添付ファイルを保管しました... URL: http://lists.sourceforge.jp/mailman/archives/wicket-ja-user/attachments/20100624/dfa5f3f4/attachment.htm From filipo2006 @ gmail.com Wed Jun 30 12:01:46 2010 From: filipo2006 @ gmail.com (ozawa) Date: Wed, 30 Jun 2010 12:01:46 +0900 Subject: [Wicket-ja-user 461] Re: DiskPageStore????????? In-Reply-To: References: Message-ID: 小沢です。返信ありがとうございます。 > 実際に上記のようなクラスを作ったわけではないので、若干穴があるかもしれませんが、ソースを追った限りでは上記の構成で行けるように思います。 > いかがでしょうか。 DiskPageStoreのサブクラスを実装して試してみました。 メソッドgetFileStoreFolder()で帰ってくるフォルダパスは、デフォルトではコンテナのworkディレクトリ自体のパスのようです。実際のパスは、DiskPageStoreのprivateメソッド「getStoreFolder」にて内部でApplicationのキー文字列と"-filestore"という文字列をベタっと足して生成していますね。 getStoreFolder()がprotectedになっていれば、まだよかったのですが・・・ 今回は、無理やり上記のgetStoreFolder()内で実施していることと同様のパス生成を行い対象のフォルダパスを生成して削除する処理を実装しました。 現在のところ特に問題はないようです。 色々とアドバイスいただきまして、ありがとうございました。