Main Contents
2004年11月29日
BeanUtils の使い方
2008-04-21 追記
BeanUtils について, 下記にもうちょっとちゃんとしたエントリーを書きました.以下は古いエントリーです...
Jakarta commons-beanutils は、使いこなすと非常に便利です。
が、Web上に日本語の情報がちょっと乏しいかなと思うので、よく使う API を簡単にまとめてみました。
PropertyUtils
BeanUtils
この2種類のクラスがあります。
どちらも同じようなメソッドが並んでいて、どう違うんやーって感じですが、簡単にいうと、
PropertyUtils は、 Object を返す。
BeanUtils は、 String を返す。
と、覚えておくといいと思います。
つまり、 String を返す Bean を扱う場合は、 BeanUtils を使い、それ以外は、 PropertyUtils を使って Cast するというような使い方でいいと思います。
例。
Struts の Action クラスで、 ActionForm から 自作の Bean にプロパティをコピーするのに、非常に重宝します。
MyBean myBean = new MyBean();
PropertyUtils.copyProperties(myBean, actionForm);
これだけで、 ActionForm のプロパティを、別の Bean にコピーしてしまうことができます。
ActionForm のなかから、一つだけプロパティを変数に代入したい場合は、
Object object = PropertyUtils.getSimpleProperty(actionForm, "propertyName");
この1行だけで済んでしまいます。
propertyName を配列にしておいて、 for とかでループさせて、まとめて validate させたりできますね。
このとき、 プロパティの getter が String を返す場合は、
String string = BeanUtils.getSimpleProperty(actionForm, "propertyName");
と、 BeanUtils を使ってあげると、 Cast しなくてすみます。
逆に、 set する場合は、
PropertyUtils.setSimpleProperty(myBean, "propertyName", object);
としてあげるといいでしょう。
Action クラスの引数の ActionForm を、キャストせずに直接扱えるのが便利なところですね。
PropertyUtils#(set|get)Property を使うと、もっと複雑なことができますが、また機会があったら書きます。。
相変わらず、仕事が火を吹いていますので。。(汗
また、 BeanUtils のソースは、 とっても勉強になるので、難しくても読んでおくと
いいと思います。
英語のドキュメントを読むより、ソースを読んだ方が理解しやすいこともありますし。
- Permalink
- Comments (0)
- Trackbacks (0)
- by みそ
- at 18:11
- in Java
2004年11月28日
gnome2.8
なんの気なしに、いれてみた。
日本語かんぺきですな。。
portinstall -Ccr x11/gnome2 で一発・・・と思ったんだけど、 gnomespeech をインストールところで止まってしまった。
gmake するときに、jdkのパスをフルパスで指定してあげないとダメみたいで、 gnomespeech の作業ディレクトリまでいって、止まっているコマンドをちゃんと jdkのパスを指定してあげて直打ち。
そうすれば動きました。
/usr/local/bin/java
とかで止まっていたら、
/usr/local/jdk1.4.2/bin/java
に置き換えてやったら大丈夫でした。
しかし、メモリ256M の非力ノートでは、スワップしまくりですな。。
まあ、サーバーのコンソールを開くか、チャットするくらいにしか使ってないからいいのだけども(笑)
- Permalink
- Comments (0)
- Trackbacks (0)
- by みそ
- at 18:09
- in FreeBSD
2004年11月26日
Firefox Extensions
/.J で話題になってたので、いろいろ試してみた。
Web Developer
http://webdeveloper.mozdev.org/
これ、さいこうです(感激)
Forecastfox
http://forecastfox.mozdev.org/
すぐに天気がわかって便利。
翻訳パネル
http://nazodane.hp.infoseek.co.jp/extension/translation.xhtml
無精者向け・・・(苦笑)
- Permalink
- Comments (0)
- Trackbacks (0)
- by みそ
- at 18:08
- in Applications
2004年11月25日
FreeBSD のフォント
X のフォントに ports/packages の japanese/jpa-ttfonts を入れると、日本語と仲良しになれるかも。
いっしょに、 databases/grass-i18n というやつも入れられるが、、、ライセンスの関係で仕方ないか。
いま、FreeBSDの firefox から書き込みしてるんですが、 Windows/Linux 用の Japanese Localization パッケージがちゃんと動いています
http://www.mozilla-japan.org/jp/l10n/firefox/
インストールして、起動する時に
% env LANG=ja_JP.eucJP firefox -UILocale ja-JP &
とでもしてやると、見事にメニュー等日本語になります。
最初に LANG を設定しているのは、これを日本語ロケールに設定しておかないと、フォームに日本語入力ができないから。。
うちでは、 LANG=ja_JP.UTF-8 にしていますが、この辺は環境次第でしょう。
- Permalink
- Comments (0)
- Trackbacks (0)
- by みそ
- at 18:06
- in FreeBSD
2004年11月20日
make world
make world ってネーミングいいよね(謎)
って話はどうでも良く、相変わらずお仕事は火を噴いておりますが、、。
make world する時のお話。
cvsup して、 make buildworld してから、 make buildkernel して、新しいカーネルをビルドするわけだが、このときに GENERIC なカーネルを作っておいた方がいいよねーってことで、
// まずは buildworld
# make buildworld
// はまったときのためにGENERIC なカーネルをつくる.
# make buildkernel KERNCONF=GENERIC
# make installkernel KERNCONF=GENERIC
// /kernel.GENERIC にリネーム
# mv /kernel /kernel.GENERIC
// カスタムカーネルをつくる
# make buildkernel KERNCONF=mykernel
# make installkernel KERNCONF=mykernel
// 仕上げ。
# mergemaster -p
reboot...
# make installworld (single user mode)
# mergemaster
reboot...
ってやってたわけだが、 INSTKERNNAME を使うことによってスマートにできそうです。
こうすることによって、 いちいち kernel.GENERIC に mv しなくても、自動的に kernel.GENERIC を構築してくれます。
# make buildworld
# make buildkernel KERNCONF=GENERIC INSTKERNNAME=kernel.GENERIC
# make installkernel KERNCONF=GENERIC INSTKERNNAME=kernel.GENERIC
# make buildkernel KERNCONF=mykernel
# make installkernel KERNCONF=mykernel
# margemaster -p
reboot...
# make installworld
# margemaster
reboot...
FreeBSD 4.x と 5.x 共通です。
FreeBSDだと、こういう細かい融通が利いていいんだけど、Linuxだとどうなのかな。。
むかし、slackwareの感覚で、Redhat7 だったか、kernel をビルドしようとしてはまった経験あり。
Linuxってディストリビューションによって違ってたりするぢゃないですか。
kernel を更新したかったら、みんな rpm とか、 apt-get 使うんでしょうか。
確かにそれはそれで楽だけど、そこまで自動化するのも考えものだと思うんですが。
好みの問題でしょうねえ。
- Permalink
- Comments (0)
- Trackbacks (0)
- by みそ
- at 18:02
- in FreeBSD
This weblog is licensed under a Creative Commons License.