- - PR -
JSFでアクションマッピング
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-11-30 11:23
よしだひろゆきさんご返信ありがとうございます。
やはりそういった方法が定石なのですよね。 悩んでいたのが、Application Developerが提供するgetStatusメソッドがList型などの場合 どうしたら良いかということです。Page Authorはパラメータを渡して、List内にそのパラメータが 存在するか否かのboolean値を得る(renderedとして用いる)。 ・・という設計を考えていました。statusという情報にしてもいろいろあり、「statusが〜であれば・・」というケースも あるでしょうし、「〜というstatusを保持していれば・・」というケースもあるかなと。 やはりJSFを使うという前提がある以上そのフレームワークに合った設計が必要だと言う事でしょうか。 <h:outputText ..... rendered="#{user.status == ABCD}"/> の形でいけるように設計をし直す方向で 考えようと思います。 丁寧なご回答ありがとうございました。 | ||||||||
|
投稿日時: 2006-11-30 13:13
すみません、'ABCD'と引用符が必要でしたね。
なるほど、そういうケースですか。リストの何番目にあるかが分かっているのであれば #{user.status[3] == 'ABCD'} のように書けるのですが、そうではないのですね。 そうすると、managed-beanの方にisABCD()のようなメソッドをステータスの種類だけ作ったりしないといけないかな。 | ||||||||
|
投稿日時: 2006-11-30 14:51
そうなんです。 しかもバッキングビーンの実装が public boolean isABCD(){ return objList.contains("ABCD"); } という感じになり、ステータスのデータ変更等から影響を受けやすいものになります。 どうにか回避できないものかと試行錯誤していたのですが・・。 | ||||||||
|
投稿日時: 2006-12-01 10:19
上記問題が解決しました。
バッキングビーンがMap型でステータスを戻すメソッドを提供することにしました。 [jsp] <h:outputText ..... rendered="#{not empty user.statusMap['ABCD']}" /> [managed-bean] public Map getStatusMap(){ Map statusMap; //statusMap初期化処理 //keyには'ABCD'等の判別文字列 //valueにはステータスを表すオブジェクト(とりあえずnull以外) return statusMap; } これでステータス系のデータ内容が変更されてもバッキングビーンを変更することなく、表示処理等を変更することが出来ると思います。 お付き合い頂きありがとうございました。 [ メッセージ編集済み 編集者: Dog 編集日時 2006-12-01 10:19 ] [ メッセージ編集済み 編集者: Dog 編集日時 2006-12-01 10:30 ] |