私はJSFについて少し混乱submittedValue
しています。value
コンバーター/検証エラーが発生した場合、どの値がレンダリングされますか?
Jsf ライフ サイクル - 検証の失敗後に応答をレンダリングする
上記の質問のBalusCの回答から、答えを見つけることができました。ただし、送信された値がnullの場合にモデル値がレンダリングされるこのレンダリングロジックがどのクラスに存在するかを知りたいです。どのクラスですか?
私はJSFについて少し混乱submittedValue
しています。value
コンバーター/検証エラーが発生した場合、どの値がレンダリングされますか?
Jsf ライフ サイクル - 検証の失敗後に応答をレンダリングする
上記の質問のBalusCの回答から、答えを見つけることができました。ただし、送信された値がnullの場合にモデル値がレンダリングされるこのレンダリングロジックがどのクラスに存在するかを知りたいです。どのクラスですか?
送信された値が null の場合にモデル値がレンダリングされるこのレンダリング ロジックが存在するクラスを知りたい
使用されている JSF 実装についてはどこにも触れていません。この回答では、それが Mojarra であると仮定します。その場合は、 で行われHtmlBasicRenderer#getCurrentValue()
ます。これは、Mojarra 1.2_15 からの関連性の抜粋です。
275 protected String getCurrentValue(FacesContext context,
276 UIComponent component) {
277
278 if (component instanceof UIInput) {
279 Object submittedValue = ((UIInput) component).getSubmittedValue();
280 if (submittedValue != null) {
281 // may not be a String...
282 return submittedValue.toString();
283 }
284 }
285
286 String currentValue = null;
287 Object currentObj = getValue(component);
288 if (currentObj != null) {
289 currentValue = getFormattedValue(context, component, currentObj);
290 }
291 return currentValue;
292
293 }
コードはそれ自体を物語っています。コンポーネントが のインスタンスである場合、UIInput
送信された値を取得します。そうでない場合はnull
、返品してください。それ以外の場合は、通常の方法でモデル値を返します。
MyFaces も同様のアプローチを使用しています。