これは、プロパティがに設定されているためreadonly
です。これが評価された場合true
、JSFは送信された値を処理しないため、モデルは更新されません。readonly
ビューのレンダリング時に設定し、JSFに送信された値を処理させる場合は、レンダリング応答フェーズでのみ評価するように設定するtrue
必要があります。これに使用できますFacesContext#getRenderResponse()
。メソッドでこれを行う必要がありますisDisable()
。
public boolean isDisable() { // TODO: rename to isReadonly().
return FacesContext.getCurrentInstance().getRenderResponse();
}
注:JSF2では、ビューからもアクセスできます。これFacesContext#getCurrentInstance()
により#{facesContext}
、モデルの定型文が節約されます。
<h:inputText ... readonly="#{facesContext.renderResponse}" />
また、JSF2を使用している場合<f:viewParam>
、このアプローチはGETリクエストでは機能しなくなることにも注意してください。説明と回避策については、「ap:calendarを読み取り専用にする」も参照してください。