带有泛型的JSF bean

时间:2012-03-02 08:15:13

标签: spring jsf

我正在尝试理解以前编写的代码。

以下是课程定义:

public abstract class BaseModel{....}


public abstract class ExtendedModel<T extends BaseModel>{....}


public class MyViewBean extends BaseModel{...}

public class MyController extends ExtendedModel<MyViewBean > {....}

在配置中:

<bean name="MyViewBean" id="myViewBean" scope="request" class="com.bean.MyViewBean"/>

<bean name="MyController" id="myController" scope="session" 
        class="com.controller.MyController" init-method="init">
    The property list goes here (in this list there is no myViewBean reference).
</bean>

在JSF页面中:

<rich:dataTable id="myList" value="#{myController}" var="myViewBean"...>
       <rich:column>
               <h:outputText value="#{myViewBean.myproperty}" />
       </rich:column>
</rich:datatable>

我需要在数据表中进行一些更改,但我无法理解var="myViewBean"中的value="#{myViewBean.myproperty}"<rich:column>中的{{1}}。

1 个答案:

答案 0 :(得分:0)

var="myViewBean"只设置当前迭代对象的EL变量名,以便您可以在组件内的EL范围内通过#{myViewBean}访问它。它的效果与普通Java中的效果基本相同:

for (MyViewBean myViewBean : myController) {
    System.out.println(myViewBean.getMyproperty());
}

myViewBean变量在循环外不可用。

这与泛型有。更重要的是,generics在Java中只是一个编译时辅助工具,它们在编译后会被删除。