我的要求是這樣的動態選擇,解決方案的報告模板
當我選擇像考試模板,將生成的考試頁面有考試場(有尊重POJO的),並且在選擇遊戲頁,頁面將生成其字段,
我該如何實現這種類型的需求。主要目標是,bean無需打擾選擇哪個模板,它是完全獨立的。
我的要求是這樣的動態選擇,解決方案的報告模板
當我選擇像考試模板,將生成的考試頁面有考試場(有尊重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()}
我覺得這些都是標籤,我不確定。
希望我能幫上忙。
請指定您使用的模板類型以及您正在談論的是哪種bean? (ManagedBean/JavaBean/POJO)。 – 2013-02-22 11:20:06
@Guizzo:謝謝你的回覆,我正在使用CDI bean – Sagar 2013-02-22 12:13:11