ADF:table 无法在页面中显示
ADF: table was unable to show in page
我在 .jsff 文件中定义了一个 ADF table,其中 partialTrigger 绑定到包含 class B 的组件的 ID :
<af:table value="#{pageFlowScope.ManagedBeanName.nameList}"
...
partialTriggers="::::it5">
...
</af:table>
在 ManagedBeanName.java 中,我们定义了 nameList 并且有一个方法可以为名为 setNameList 的列表设置值。当 nameList 设置值时,它将在 UI 页面中显示 table。
public void setNameList(){
...
nameList.add(name);
}
现在我有一个 Class B,我们在其中调用 setNameList、
ManagedBeanName managedbean = new ManagedBeanName();
managedbean.setNameList();
通过调试过程,发现setNameList可以正确调用,nameList可以设置值。
但是调用后nameList没有值。 table 没有显示。
能否请您帮助发现问题出在哪里?
非常感谢!
您必须将数据列表放在一个范围内
尝试这样的事情:
public List<String> getMyList() {
myList.clear();
List<String> list = (List<String>) AdfFacesContext.getCurrentInstance().getProcessScope().get("myList");
if (list != null) {
for (String var : list) {
myList.add(var);
}
}
return myList;
}
你也可以看到这个问答:
问题是我在 managedbean 中定义了 setNameList() 并且必须在 Class B 中的另一个方法中调用 setNameList()。
我新建了一个新的 managedBean 来调用这个方法,这个实例中的 nameList 不是绑定到页面的那个。
解决方法:
在class B中,获取正确的实例为:
ManagedBean managedBean = (ManagedBean)ADFUtil.evaluateEL("#{pageFlowScope.ManagedBean}");
问题解决了。
我在 .jsff 文件中定义了一个 ADF table,其中 partialTrigger 绑定到包含 class B 的组件的 ID :
<af:table value="#{pageFlowScope.ManagedBeanName.nameList}"
...
partialTriggers="::::it5">
...
</af:table>
在 ManagedBeanName.java 中,我们定义了 nameList 并且有一个方法可以为名为 setNameList 的列表设置值。当 nameList 设置值时,它将在 UI 页面中显示 table。
public void setNameList(){
...
nameList.add(name);
}
现在我有一个 Class B,我们在其中调用 setNameList、
ManagedBeanName managedbean = new ManagedBeanName();
managedbean.setNameList();
通过调试过程,发现setNameList可以正确调用,nameList可以设置值。
但是调用后nameList没有值。 table 没有显示。
能否请您帮助发现问题出在哪里?
非常感谢!
您必须将数据列表放在一个范围内 尝试这样的事情:
public List<String> getMyList() {
myList.clear();
List<String> list = (List<String>) AdfFacesContext.getCurrentInstance().getProcessScope().get("myList");
if (list != null) {
for (String var : list) {
myList.add(var);
}
}
return myList;
}
你也可以看到这个问答:
问题是我在 managedbean 中定义了 setNameList() 并且必须在 Class B 中的另一个方法中调用 setNameList()。
我新建了一个新的 managedBean 来调用这个方法,这个实例中的 nameList 不是绑定到页面的那个。
解决方法:
在class B中,获取正确的实例为:
ManagedBean managedBean = (ManagedBean)ADFUtil.evaluateEL("#{pageFlowScope.ManagedBean}");
问题解决了。