式評価の件、凡ミスでした。
昨日書いた、「S2JSFのm:renderedによる式評価について」
http://d.hatena.ne.jp/wataka/20060711#1152628933
については私の単なる凡ミスでした。
S2JSFのm:renderedでは、String型のnull評価および空文字評価が可能です
というわけで誰のお役に立つこともなさそうですがメモします(言い訳です)
結論から書くと、当たり前のことですが、
- SQL文のSELECT句に含まれないフィールドは初期化されたままの状態でDtoの変数に入っています。String型であれば原則空文字です
- 抽出したフィールドの値がnullの場合、DtoのString型変数には、nullがセットされます。
これがあやふやでした..orz
private String name = ""; //初期化
○背景
- 1件表示と複数件表示を同じS2JSFページで実装。
- テーブルからの1件抽出(MethodA)と複数件抽出(MethodB)は別メソッド
- SQLアノテーション使用
- create table hoge (id number, name varchar);
○発行してたSQL
項目追加があった場合ややこしくなりそうなので、select * に統一しておいた方がいいかも...
Stringのnull評価・空文字評価をまとめて確認したいときは、getterでトレースしたり、下記を引用すると吉です。
<span m:rendered="#{e.name==null}">null です</span>
<span m:rendered="#{e.name!=null}">not null です</span>
<span m:rendered="#{e.name==''}">空文字 です</span>
<span m:rendered="#{e.name!=''}">not 空文字 です</span>
大変×2お騒がせしました。 >> id:yone098 さま