来自ASP.NET我很难掌握基本的ADF概念。
我需要在单击按钮时绑定一个表,由于某种原因我不明白(我倾向于页面生命周期,我猜这与ASP.NET不同)它不起作用。
这是我的ADF代码:
<af:commandButton text="#{viewcontrollerBundle.CMD_SEARCH}"
id="cmdSearch"
action="#{backingBeanScope.indexBean.cmdSearch_click}"
partialSubmit="true"/>
<af:table var="row" rowBandingInterval="0" id="t1"
value="#{backingBeanScope.indexBean.transactionList}"
partialTriggers="::cmdSearch"
binding="#{backingBeanScope.indexBean.table}">
<af:column sortable="false" headerText="idTransaction" id="c2">
<af:outputText value="#{row.idTransaction}" id="ot4"/>
</af:column>
<af:column sortable="false" headerText="referenceCode" id="c5">
<af:outputText value="#{row.referenceCode}" id="ot7"/>
</af:column>
</af:table>
这是cmdSearch_click:
public String cmdSearch_click() {
List l = new ArrayList();
Transaction t = new Transaction();
t.setIdTransaction(BigDecimal.valueOf(1));
t.setReferenceCode("AAA");
l.add(t);
t = new Transaction();
t.setIdTransaction(BigDecimal.valueOf(2));
t.setReferenceCode("BBB");
l.add(t);
setTransactionList(l);
// AdfFacesContext.getCurrentInstance().addPartialTarget(table);
return null;
}
注释行也不起作用。
如果我在Bean的构造函数中填充列表,那么表格就可以了。
有什么想法吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
我不确定支持bean范围是否是您想要使用的范围。我建议使用pageFlowScope或Session范围。这些将最贴切地映射到您想要建模的内容。
PageFlowScope遵循用户点击的内容,因此同一个Web应用程序/同一用户的两个实例具有不同的PageFlow范围。
会话范围对于同一用户的所有Web应用实例都是通用的。
应用程序范围对所有用户都是通用的。我几乎总是会避免这种情况。
请求范围仅在视图请求之间持续。除了极短的持续时间数据外,它并没有什么用处。
答案 2 :(得分:0)
您不应将其设置为sessionScope。然后它将在用户会话激活之前有效。您可能希望使用pageFlowScope(这在页面的生命周期内有效)或requestScope,该请求从客户端发出请求到收到响应之间有效。