ページで[保存]をクリックしたときに検証を導入した後、何も起こりません。このページには「保存」と「キャンセル」があります。キャンセルボタンに「immediate=true」を設定すると、検証が実行されず、想定どおりに前のビューに戻ります。[保存]をクリックすると、検証が実行され、エラーが正しく表示されますが、データを処理して前のページに戻る代わりに、正しい入力を入力すると(検証でエラーが発生しないように)、何も起こりません。 ..。。
私は何かが恋しいですか?
ここにいくつかのコードスニペットがあります:
意見:
<f:metadata>
<f:viewParam name="mode" value="#{roomDetailController.model.mode}"/>
<f:viewParam name="dbId" value="#{roomDetailController.model.dbId}"/>
<f:event listener="#{roomDetailController.processCommand}" type="preRenderView"/>
</f:metadata>
...
<tr>
<td>
<h:outputLabel value="#{msg.roomFormFieldRoomName}:"/>
</td>
<td>
<h:inputText id="roomName" value="#{detailModel.afterObject.roomName}" disabled="#{detailModel.mode == detailModel.viewMode}">
<f:validateBean/>
</h:inputText>
<h:message for="roomName" style="color:red"/><br/>
</td>
</tr>
<tr>
<td>
<h:outputLabel value="#{msg.roomFormFieldRoomIPs}:"/>
</td>
<td>
<h:inputText id="roomIPs" value="#{detailModel.afterObject.roomIPs}" disabled="#{detailModel.mode == detailModel.viewMode}">
<f:validateBean/>
</h:inputText>
<h:message for="roomIPs" style="color:red"/><br/>
</td>
</tr>
...
<!-- SUBMIT BUTTON -->
<h:commandButton
styleClass = "waiButton"
value = "#{commonButtonSubmit}"
action = "#{detailController.submitAction()}"
rendered = "#{detailModel.mode != detailModel.viewMode}"
/>
<!-- CANCEL BUTTON -->
<h:commandButton
styleClass = "waiButton"
value = "#{commonButtonCancel}"
action = "#{detailController.cancelAction()}"
immediate = "true"
rendered = "#{detailModel.mode == detailModel.cancelMode or detailModel.mode == detailModel.editMode or detailModel.mode == detailModel.multiEditMode or detailModel.mode == detailModel.createMode}"
/>
...
コントローラ:
...
// Action: "submit" clicked
public String submitAction()
{
detailModel.setCommand( DetailModel.Command.SUBMIT );
return null;
}
// Action: "cancel" clicked
public String cancelAction()
{
if ( detailModel.getEditMode().equals( detailModel.getMode() ) )
{
detailModel.setMode( detailModel.getViewMode() );
return null;
}
else
{
// Multi Edit Mode
return appendUrlParameter( getListViewName(), FACES_REDIRECT_TRUE );
}
}
...
さらに情報が必要な場合は、私に知らせてください...