MVC コントローラーが JSF 2.1 である webapp を開発しています。私はに基づいているいくつかの方法を持っています
FacesContext.getCurrentInstance()
これを使って
- Flash スコープからの値の配置/取得
- ビューにメッセージを追加
- リクエスト パラメータ マップを取得する
例:
public void addInfoMessage(String title, String description){
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,title, description));
}
と
public void putFlashMessage(String code, String value){
FacesContext.getCurrentInstance().getExternalContext().getFlash().put(code, value);
}
等
すべての管理対象 Bean でこれを使用する場合、このメソッドを配置する適切な場所はどこにあるのでしょうか? 次の 2 つのオプションを検討します。
a) クラス「JSFUtils」を作成します。ここで、すべてのメソッドは public および static です。
b) スコープを宣言せず、@ManagedBean アノテーションを宣言せずに、これらのパブリック メソッドを使用して、スーパー クラス「ManagedBean」を作成します。すべてのマネージド Bean はこれらのクラスの子である必要があるため、これらのメソッドが継承されます。