在新的ID空间中不是唯一的ZK

时间:2014-01-13 11:16:05

标签: zk

我正在使用ZK在我的Java代码中创建2 ListBox并分配那些ListBox唯一ID。这是我的流程。

  1. 客户从下拉框中选择值。
  2. 点击保存按钮
  3. 值传递给基础服务,状态得到更新。
  4. 我们在另一个活动的帮助下刷新页面。
  5. 以下是我创建Listbox的方法

    Listbox listbox=createListbox(widget,OrderStatus.ORDERSTATUS.class, null,orderStatus);
    listbox.setId(ORDER_STATUS_ID);
    

    第一次一切正常,但是当我下次这样做时,虽然底层代码工作正常,但我第二次收到错误消息,依此类推。

    Not unique in the new ID space: orderStatusId
    

    问题与enter link description here有关,但对ZK不熟悉,不确定什么是实现这一目标的最佳方法。 对我来说问题似乎是在我们在成功订单状态更新后刷新页面时,因为代码正在再次执行并且似乎已经将Id分配给它。

    页面刷新代码

     button.addEventListener("onClick", new EventListener()
        {
          public void onEvent(Event event)
            throws Exception
          {
            DetailsWidgetRenderer.this.handleRefreshEvent(widget, event);
          }
        });
    

1 个答案:

答案 0 :(得分:3)

使用ZK时常见的错误是留在脑中的请求/响应周期。 ZK不执行请求/响应周期。忘掉它。 ZK就像Swing:你创建UI,将数据放在模型中,然后让框架呈现所有内容。

在您的情况下,您可能会尝试再次将ListBox添加到UI (因为这是您从JSP中习惯的)。不要那样做。只需更新附加到ListBox的模型,ZK就会为您刷新HTML。