JSF 2.0 の使用:
ユーザーは、既存の値を持つバッキング Bean フィールドにバインドされた入力フィールドを含むページをロードします。入力フィールドは必須としてマークされています。ユーザーがフィールドを空白にしてフォームを送信すると、期待どおりに必要なメッセージが表示されますが、フィールドの値は、フィールドを空白のままにするのではなく、ページがレンダリングされたときに元の値に置き換えられます。
この動作は、フィールドにフォーマット検証エラーがある場合 (必要な検証エラー) と矛盾しているように見えます。ユーザーが、ページが読み込まれたときにフィールドに入力された既存の有効な電子メール アドレスを無効な電子メール アドレスに置き換えてフォームを送信すると、検証エラー メッセージが表示され、電子メール アドレス フィールドの現在の値がそのまま残ります (置き換えられません)。ページがロードされたときの元の値で)。
必要なフィールドの検証エラーが発生したときにフィールドを空白のままにしておく方法と、元の (空白ではない) 値を再ロードする方法はありますか?
詳細:
- ウェブロジック 10.3.2
- マイフェイス 2.0.12
JSF ページ:
<h:form>
<h:messages showSummary="true"/>
<h:inputText value="#{page1Controller.firstName}"
required="true"
requiredMessage="You must enter a first name"/>
<h:commandButton value="Submit"/>
</h:form>
マネージドBean
@ManagedBean
public class Page1Controller
{
public String getFirstName()
{
return "Default Value";
}
public void setFirstName(String value)
{
// no-op (for example purposes only)
}
}