- - PR -
JSF 画面遷移(URL)が変?
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-22 12:39
「javax.faces.STATE_SAVING_METHOD」に「client」を
設定すると、戻るボタンの動きが改善されました。 これで、私の思い通り動いてくれています。ありがとうございました。 ただ、リダイレクトの件もそうですが、副作用的なものがあるかも 知れませんので、もうちょっとよく検証してみます。 数々の調査情報ありがとうございました。 以下、メモです。 ==== 「javax.faces.STATE_SAVING_METHOD」に「client」を 設定すると、下記例外が発生した。 ---- javax.faces.FacesException: org/apache/commons/codec/binary/Base64 org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:410) org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:244) org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:290) javax.faces.webapp.FacesServlet.service(FacesServlet.java:110) ---- ログには、 ---- java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64 ---- と出ていたので、commons-codec.jarを追加した。 | ||||
|
投稿日時: 2005-11-22 14:13
clientメソッドを使うと,コンポーネントツリー全体をエンコードしてブラウザにhidden フィールドとして送ります.Sunの参照実装では,faces.VIEWという名前のhiddenフィールド に設定されます.サイズを測定してみましたが,一つのformの中にinputText一つと commandButton一つで2.3KByteの文字列がブラウザ・サーバー間を往復します. また,参照実装の場合(MyFaceも?)単純なBASE64のエンコードなので,セキュリティの 観点からはイントラネットでしか使えないだろうと考えています. | ||||
|
投稿日時: 2005-11-24 12:55
私も当初セキュリティが心配でserverモードを使っていたのですが、考えてみたらコンポーネントツリーをセキュアにする必要はあまりなさそう(大抵、重要な入力値チェックはアクション処理部分で実行するし、秘密の情報はコンポーネントツリーに入れない)ということで、今は「戻る」を許可するタイプのシステムでは基本的にclientモードを使うようにしています(「戻る」不許可の場合はserverモードですが)。 あと、シリアライズしたものをBASE64でそのまま吐き出しているのはサイズの面でかなりトホホな実装ですが、JSF1.2PRのNightly SnapshotsをみるとZip化しているようですので、そのうちMyFacesのJSF1.1実装でもサポートしてくれるかもしれません(MyFaces宛にレポートを出さないとだめかな?)。 (余力があるのなら自分でRenderKitを差し替えるという方法もありますが) ----- 下記URLから「Nightly Snapshots」の「stable」の「JSF 1.2 milestones」と辿るとJSF1.2のマイルストーンごとの実装を取得できます。現時点では「Public Review」の仕様に対応したものが最新のようです。 https://javaserverfaces.dev.java.net/ 補足:上記のjava.netはブラウザの言語設定で英語を最優先にしてあげないと化け化けになります。特にCDDL(COMMON DEVELOPMENT AND DISTRIBUTION LICENSE)の受諾ページやSVNリポジトリを表示する際に障害が発生します。 [ メッセージ編集済み 編集者: henachoco 編集日時 2005-11-24 13:03 ] |
«前のページへ
1|2|3