- - PR -
JSF 初画面表示時にBeanに値をセットする(Actionを呼び出す)には?
投稿者 | 投稿内容 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-05-15 17:51
亀レスすみません。
前に一度返答したつもりが、なぜか消えてしまいました。 #そもそも返答できていなかったのかもしれないです
JavaコードにEL式やBean名(<managed-bean-name>に書いた名前)を書くべきでない。 ということですよね。 しかし、マネージドビーンとしてラッパークラスのみを定義して、各ページでラッパー クラス越しに各Beanにアクセスするのは、それはそれで不自然な気もします。 よしださんが提示された方法(ラッパークラス)も以前サンプルを作った際に試しました。 で、今回はValueBinding式でBeanにアクセスする方法を取ったのですが、現在もどちらのやり方がいいのか答えが出てないです。 どっちが一般的なんでしょうか? | ||||||||||||||||||||||||||||
|
投稿日時: 2005-05-16 11:15
その通りです.
私は「自然」だと思っているのですが ^_^;) 私の方法は,そこいらにいくらでもあるJSFの入門記事を読んだだけで理解できるものです.一方,代替案の方は,JSFのしくみをちゃんと理解しないと駄目ですよね. #しくみを理解したい方はこちらがお勧め↓ http://www.src-j.com/book_no/209.htm
どんな問題がありましたか?
JSFは世界的にまだいろいろ試されている段階だと思います. ちなみにWebsphare Studioだとマネージドビーン(例えばuser)を定義すると,それを取ってくるメソッド(getUser())を自動生成するらしいです(未確認). なお,JSFについては以下でも活発に議論しているので眺めに来てみてください. http://groups.yahoo.co.jp/group/jsf-jp/ | ||||||||||||||||||||||||||||
|
投稿日時: 2005-05-16 15:39
JSF(SUN)がどちらの方法が使われることを想定してるのか気になるところです。
でその中では、ValueVindingやSessionMapなどからBeanを取得してるのではないでしょうか?自動生成なので開発者がそれを意識する必要は無いですけど…
| ||||||||||||||||||||||||||||
|
投稿日時: 2005-05-17 11:31
私には, FacesContext ctx = FacesContext.getCurrentInstance(); BeanType bean = (BeanType)ctx.getApplication().getVariableResolver().resolveVariable(ctx, "beanName"); とか FacesContext.getCurrentInstance().getApplication().createValueBinding("#{beanName}").getValue() とかが「想定された使い方」だとはとても思えないんですけどね せめて FacesContext.getCurrentInstance().getManagedBean("beanName") くらいのAPIが用意されているのでしたら,そう使わせたいんだろうと思いますが.
アプリケーション側にビーン名をハードコーディングしたら,View担当者がその名前以外は使えないから,同じことでは? まぁ,View担当者のことを考えたら,ラッパクラスがプロパティのgetter/setterも全部提供してあげた方がいいでしょうね.
ははは,ペンネームは同じですね,ということで... |