1

我的数据库中有一个 ZK 提供程序中的应用程序,并且我有我的 DAO 来返回我的数据库的所有名称。

我在 ZK 中有这样的观点:

<zk>
    <window id="Mnos" border="normal" mode="modal" width="320px"
        apply="org.zkoss.bind.BindComposer"
        viewModel="@id('vm') @init('operator')">
        <listbox model="@load(vm.provider)" onClick="@command('provider', provider = each)"/>

    </window>
</zk>

我需要当用户确实单击某个提供程序时,保存一个会话变量以在我的应用程序中使用,因为我有很多服务,当我创建服务时,我需要创建与用户在其中选择的提供程序相关的服务菜单,我需要创建工作人员,我需要创建一个与用户在菜单中选择的提供者相关的工作人员,

我有这个java类:

public class operator {

    Collection<String> provider = MnoDAO.getAllProvidersByName();

    public Collection<String> getMno() {
            return mno;
        }
    @Command
    public void provider(@BindingParam("provider") String provider){
        Messagebox.show("Hola ... "+mnoList);
    }

}

我的主要问题是 each始终为空,其次我不知道如何保存会话变量以在所有应用程序中使用,并且当我选择其他提供程序时可以更改此变量。

有人可以帮助我吗?

4

1 回答 1

1

ZK 提供了一个Session对象,可以通过Sessions静态 getter 访问。这可以在 ZK 生命周期中的任何地方(任何 ZK 托管线程)使用。

String name = "myCoolVariable";
MyObject originalValue = getMyCoolVariable();
Session session = Sessions.getCurrent();
session.setAttribute(name, originalValue);

...

if (session.hasAttribute(name)) {
    MyObject retrievedValue = (MyObject) session.getAttribute(name);
}
于 2013-10-02T13:09:56.747 回答