私の要件は次のようになります。
試験のようなテンプレートを選択すると、試験フィールド (POJO を尊重した) を含む試験ページが生成され、ゲームページが選択されると、そのフィールドを含むページが生成されます。
このタイプの要件をどのように実装できますか。主な目標は、bean がどのテンプレートを選択するか気にする必要がないことです。完全に独立しています。
私はすべての問題を理解していませんでしたが、私は助けようとします。
Beanクラスにはデザインパターンを使用Template Method
できます。JSFページでは、抽象クラスメソッドを呼び出すことができます。このようなもの:
public abstract class AbstractBean {
public void templateMethod(){
//Same code for all children;
foo();
//Same code for all children;
}
protected abstract void foo();
}
public class Bean extends AbstractBean {
protected void foo(){
//Your specific code here;
}
}
次に、JSFページで。を呼び出すだけ#{abstractBean.templateMethod()}
です。#{abstractBean}
しかし、サブクラスを変数に注入する方法がよくわかりません。
ただし、別の方法で役立つ可能性のあるFaceletタグがありますui:param
。これを見てください:http ://www.oracle.com/technetwork/articles/java/facelets-454361.html 。前のコードとは何の関係もありません、それは別の解決策です。私はすでにそれを自分で使用しました。テンプレートページ(ui:define
)で変数を定義できます。特定のページではui:param
、テンプレートページに定義された変数に値を設定するために使用します。次に#{definedVariable.someMethod()}
、これらはタグだと思いますが、よくわかりません。
私が助けることができることを願っています。