ポストバックとは何かをテストするために、非常に単純な JSF を作成しました。JSP には、「adfFacesContext.postback」式を出力するための出力テキストと、送信を行うためのボタンが含まれています。
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<title>TEST</title>
</head>
<body>
<af:form>
<h:outputText value="#{adfFacesContext.postback}" />
<h:commandButton value="SUBMIT" action="ok"/>
</af:form>
</body>
</html>
</f:view>
faces-config.xml でナビゲーション ルールを作成しました。
<navigation-rule>
<from-view-id>/test.jsp</from-view-id>
<navigation-case>
<from-outcome>ok</from-outcome>
<to-view-id>/test.jsp</to-view-id>
</navigation-case>
</navigation-rule>
ページが最初にロードされるとき、「adfFacesContext.postback」式は false と評価されるため、すべてが正しくなります。
しかし、ボタンを押すと、「adfFacesContext.postback」式が再び false と評価されます。
なんで?
Faces-config.xml からナビゲーション ルールを削除すると、ボタンを押したときに "adfFacesContext.postback" 式が true と評価されることがわかりました。
正しい結果を得るためにナビゲーション ルールを削除する必要があるのはなぜですか?