- - PR -
JSF Submitしないでページ遷移するには?
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-12-22 17:23
JSFを勉強しています。
・JSF1.1 commadButton、commandLinkで画面遷移した場合、Submitされて画面入力内容がBeanに反映されます。 通常はこれでOKなのですが、「戻る」の場合は入力内容を反映させたくありません。 commandButtonのtype属性を"button"にしてみたところ、Submitされなくなりましたが画面遷移もしなくなりました^^; #action属性が無視されている? --JSP <h:commandButton action="back" value="ok" /> <h:commandButton action="back" type="button" value="cancel" /> --faces-config.xml <navigation-rule> <description>内容編集</description> <from-view-id>/item.jsp</from-view-id> <navigation-case> <description>戻る</description> <from-outcome>back</from-outcome> <to-view-id>/article.jsp</to-view-id> </navigation-case> </navigation-rule> 画面遷移はナビゲーション定義で統一したいと思っています。 どのようにすればよいのでしょうか? |
|
投稿日時: 2004-12-24 10:18
JSFはサーバ側のフレームワークですから,
「Submitしない」と「画面遷移はナビゲーション定義で統一したい」は両立しません. ボタンにimmediate="true"を指定して,対応するactionの中で,FacesContextのrenderResponseを呼べばいいはずです. public String backAction() { FacesContext.getCurrentInstance().renderResponse(); return "back"; } という感じかな. |
|
投稿日時: 2004-12-24 10:35
訂正します.renderResponseは自動的に呼んでくれているようですので,ボタンを以下のように指定するだけですね.
<h:commandButton value="戻る" action="back" immediate="true"/> |
|
投稿日時: 2004-12-24 11:14
返答ありがとうございます。
commandButton、commandLinkともに、immediate="true"を指定することで画面入力内容をBeanに反映せずにナビゲーション定義に従って画面遷移できることを確認しました。 ありがとうございました。 |
1