动态选择报告模板的解决方案

时间:2013-02-22 11:14:18

标签: java jsf-2

我的要求是这样的,

当我选择考试这样的模板时,考试页面会生成考试领域(有尊重的POJO),当选择游戏页面时,会生成一个页面字段,

如何实现此类要求。主要目标是,bean无需费心选择哪个模板。它是完全独立的。

1 个答案:

答案 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()}我认为这些是标签,我不确定。

希望我能提供帮助。