JSF两个bean只有一个视图?

时间:2013-08-24 17:35:11

标签: jsf inheritance view el managed-bean

我有以下内容:

public abstract class aBean{... methods and variables ...}

@ManagedBean, ViewScoped
public class BeanType1 extends aBean{...only one method overritten...}

@ManagedBean, ViewScoped
public class BeanType2 extends aBean{...only one method overritten...}

是否可以使用BeanType1链接到View.xhtml(h:outputlink),使用BeanType2链接到(相同)View.xhtml?我需要一种视图继承;喜欢使用像#{BEANPARAM.method}这样的EL表达式,其中BEANPARAM可以是BeanType1或BeanType2 ......

视图完全相同,我想避免重复...

这是可能的,还是我需要两个具有不同bean的标识视图(使用#{viewScope [PARAM]。}? 我不想要的是使用GET参数,因为用户可以改变这个,这会导致不同的结果(不安全)

1 个答案:

答案 0 :(得分:0)

您不能拥有任何类型的视图继承,但您可以做的是重复使用您的视图。

使用类似#{beanParam....}之类的东西动态编写它,就像你自己写的一样。

然后使用<ui:include>包含动态视图,并使用<ui:param>定义beanParam,如下所示:

<ui:include src="dynamicView.xhtml">
    <ui:param name="beanParam" value="#{beanType1}" />
</ui:include>