FC2ブログ

t100のプログラミング脱出作戦

自分のプログラミング脳をプログラムにして、いつかプログラミングから脱出してやるぞっ!とか夢見ながら、日々プログラム作っていく 百野 貴博 の日記です!今は、屋号『百蔵。』として、Silverlight・WPFを追跡中です! (2007/09/30)
WicketのDropDownChoiceで"選択してください"を変更する方法
アクセスログを見てると、"DropDownChoice Wicket"の組み合わせで
このサイトにたどり着いてる方が居られる模様。

そういえば以前、自分もそれでハマってWicketのプロパティファイルを検索する順番を調べたりしたんだった。

。。。

ぬあぁ!!
そういえば、そのときのエントリで結局、”選択してください”を変更するの書き忘れてたっ!!

というわけで、今更ですが変更方法を簡単に書きます。

※このエントリを書き終わってから以前のエントリを読み返してみると、変更方法書いてましたね・・・。
私の記憶違いでした・・・orz

でも、もったいないのでアップしよ。
⇒続きを読む ヽ(´ー`)ノ
Javaのシフト演算の最小サイズが4バイト(int)だった件
いやー、ハマりました。。。
Javaのシフト演算、、、


それは、仕事でJavaでFlashのswfファイルを編集する為に
もんどり打ちながらバイナリファイルを読んでいた時に起こりました。

その作業の中で、私は2バイト(16ビット)のデータから
上位10ビットを”データ種別”、下位6ビットを”データ長”として
取り出さないといけないという課題に挑戦していました。

「フフン♪そんなの、シフト演算とビット演算でチョチョイのチョイやで。」


その直後、ハマリはやって来たのでした。
これは、そんなハマリ発生の背景から解決までの涙の一部始終です。
⇒続きを読む ヽ(´ー`)ノ
Spring2.0でLogbackを使う
Log4Jのコンフィグファイルの書き方を調べようとWebを調べてみたら
「ていうか時代はSLF4Jでlogbackだよね!」みたいな記事に突き当たってしまった。
うおっ!まぢ?!ていうか、それ何?!

Log4Jは秀逸な出来だったし、かなり長くお世話になっていたし、いろんな言語に移植されてたから、これだけは不動だと(勝手に)思っていたのだが、、、
知らん間に、次の世代が出てきとるようだ・・・。


なんでも、Log4J 徹底解説によると、Log4Jの生みの親が、1.3の開発方針を内部で反対されたことでヤル気なくしちゃって、新たにLogbackを作り始めたのが事の経緯だとか。
頼むよ。ヤル気なくさないでくれよ。

で、SLF4JやLogbackは、以下のような位置づけのようです。
SLF4J と Logback 。

●SLF4J (Simple Logging Facade for Java) … Commons Logging の後継。
●Logback … Log4j の後継。

うーむ・・・。
また新しいフレームワーク(ライブラリ)が無造作に増えるのか。
ログくらいは、一つのライブラリを安定して進化させて欲しかった気もするが・・・。


まぁでも”長いものには巻かれろ主義”としては、時代の流れには逆らえないので(ショボ)SpringでLogbackを使う構成を調べてみました。

Spring2.0は、Commons-Loggingに依存しているので、うまいことやらないとWebアプリケーション内で複数のロガーを持つ羽目になってしまいます。
SLF4Jに用意されている、Commons-Loggingとのブリッジを使って、ロガーをLogback一つにしたいところです。
⇒続きを読む ヽ(´ー`)ノ
SpringのXMLを何とかオブジェクトで指定できないか考えてみる。
Wicketを使っていて設定ファイル系XMLから開放されつつあるんですが、DIコンテナでSpringを採用したとたんにXMLファイル増加。
他の方のブログで Google Guice という選択肢を見かけたので少し挑戦してみたのですが、トランザクション周りのAOPのさせ方が、もひとつ分からなくて断念。。。(ショボ)

DI/AOP 初心者の自分には、ドキュメントが少ない(日本語のやで)ハードルが越えられませんでした・・・orz

その点、Springであれば、ドキュメントは充実しているので多少安心です。
あとは、XMLを書かないといけないという課題が克服できさえすれば、、、出来さえすれば、、、っ!

というわけで、XMLを使わずにコンフィグを指定する方法を考えてみました。

Spring JavaConfigというのが、まさにピッタシカンカンなんですが、これまたドキュメントの壁にh(略)
⇒続きを読む ヽ(´ー`)ノ
Wicketで、リクエストがポストバックされたかどうかを知るには?
Wicketで、現在のリクエストがポストバックされたものかどうかを調べていたのですが、、、
(いわゆる、.net で言うところの isPostBack プロパティ相当の機能です)

どうもプロパティという形では無いようです。
ただ、WebPageのコンストラクタが最初のリクエストのときにのみ呼ばれているようなので、この特性が変わりに使えそうです。

WicketのWebページの処理サイクル(ラウンドロビン)は、おそらく以下じゃないかと思います。
#ちゃんと調べてなくてすみません。

1.ユーザーがページを要求します。(Http Get)
2.Wicket(Reqest Cycle)は、対象のWebPageのインスタンスを生成します。
3.レスポンスが返されます。
4.ユーザーによって、ページがサーバーにポストされます。(ポストバック)
5.Wicketは、対象のWebPageのインスタンスをセッションから検索します。
  #インスタンスが見つからない場合、期限切れ扱いとなります。
6.インスタンスが見つかった場合は、ページクラス上の各コンポーネントのイベントが呼びだされます。(onSubmit等)
7.・・・続く


#詳しい処理フローは、org.apache.wicket.request.AbstractRequestCycleProcessorのprocessEventsメソッド でデバッグすると参考になるかもしれません。



そうです。
Wicketは、セッションにページが保存されていることが前提でラウンドロビンを実行しているのです。(たぶん)


なので、処理の記述場所としては以下のようになるんじゃないかと思います。

・ページの初期化(初期表示)の情報は、WebPageのコンストラクタに記述する。
・ポストバックされた際の処理は、各コンポーネントのイベントに記述する。

うーん・・・。なるほどー。

大量ユーザーからのリクエストさばこうとしたら、メモリ不足にならないのだろうか・・・。
あと、戻るボタン対策とかどうなってるんかな・・・。

テーマ: プログラミング - ジャンル: コンピュータ