我正在尝试理解以前编写的代码。
以下是课程定义:
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}}。
答案 0 :(得分:0)
var="myViewBean"
只设置当前迭代对象的EL变量名,以便您可以在组件内的EL范围内通过#{myViewBean}
访问它。它的效果与普通Java中的效果基本相同:
for (MyViewBean myViewBean : myController) {
System.out.println(myViewBean.getMyproperty());
}
myViewBean
变量在循环外不可用。
这与泛型有无。更重要的是,generics在Java中只是一个编译时辅助工具,它们在编译后会被删除。