【问题标题】:How to bind an ADF Table on button click如何在按钮单击时绑定 ADF 表
【发布时间】:2017-01-22 06:20:28
【问题描述】:

来自 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 的构造函数中填充列表,则表格呈现正常。

有什么想法吗?

【问题讨论】:

  • 我将支持 bean 范围更改为请求,仍然是同样的问题
  • 我将范围更改为会话并且它起作用了......我想我应该研究一下范围

标签: binding oracle-adf jdeveloper


【解决方案1】:

这是一个范围问题。

看完this post,我觉得正确的做法是设置成viewScope

如果有人认为这是不正确的,请告诉我。现在这是我的答案。

【解决方案2】:

我不确定支持 bean 范围是否是您想要使用的正确范围。我建议使用 pageFlowScope 或 Session 范围。这些将最接近您想要建模的内容。

PageFlowScope 跟随用户点击的内容,因此同一网络应用程序/同一用户的两个实例具有不同的 PageFlow Scope。

会话范围对同一用户的网络应用程序的所有实例是通用的。

应用范围对所有用户都是通用的。我几乎总是会避免这种情况。

请求范围仅在视图请求之间持续。除了持续时间极短的数据外,没有什么用处。

【讨论】:

    【解决方案3】:

    您不应将其设置为 sessionScope。然后它将一直有效,直到用户会话处于活动状态。您可能希望使用 pageFlowScope(这在页面的整个生命周期内都有效)或 requestScope,它从客户端发出请求到收到响应都有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多