2013-02-22 6 views
0

Моего требования идет, как это,решения для динамического Выбора шаблон отчета

Когда я выбираю шаблон как экзамена, страница экзамена будет генерироваться, имеющей экзаменационные поля (уважали POJO), и при выборе Игры Page , страница будет генерировать с ее полями,

Как я могу реализовать этот тип требований. Основная цель: bean не нужно беспокоиться о том, какой шаблон выбран. Он полностью независим.

+0

Укажите, пожалуйста, какой тип шаблона вы используете и на какую фазу вы обсуждаете? (ManagedBean/JavaBean/POJO). –

+0

@Guizzo: спасибо за ответ, я использую CDI bean – Sagar

ответ

0

Я не получил всю проблему, но я постараюсь помочь.
Вы можете использовать Template Method дизайнерский паттерн для вашего компонента bean, а на вашей странице 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()} Я думаю, что это теги, я не уверен.

Надеюсь, что смогу помочь.

Смежные вопросы