我的要求是这样的,
当我选择考试这样的模板时,考试页面会生成考试领域(有尊重的POJO),当选择游戏页面时,会生成一个页面字段,
如何实现此类要求。主要目标是,bean无需费心选择哪个模板。它是完全独立的。
答案 0 :(得分:0)
我没有完全解决问题,但我会尽力帮助
您可以对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()}
我认为这些是标签,我不确定。
希望我能提供帮助。