zkoss没有约束价值

时间:2012-10-20 19:22:27

标签: zk

我的zkoss代码没有绑定java方法的值。

<window border="normal" id="home"
    apply="com.test.HomeController">
    <caption label="@{home.name}"></caption>
            <button label="text"></button>
</window>


public class HomeController extends GenericForwardComposer{

    public  String getName() {
        return "MY ZKOSS";
    }

}

窗口标题未显示MY ZKOSS。任何人都可以告诉我这是什么问题吗?

3 个答案:

答案 0 :(得分:5)

ZK可以使用MVVM模式。

<window id="win" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('myController')">
     <caption label="@load(vm.myText)"></caption>
</window>


public class myController {
private String name = "MY ZKOSS";

    public  String getName() {
        return name;
    }

public  void setName(String name) {
        this.name =  name;
    }
}

ZK Developer Reference - MVVM

答案 1 :(得分:2)

对于从GenericForwardComposer扩展的控制器,通过getter进行的值绑定将与EL表达式一起使用,如label="${$composer.name}"

如果控制器从组件基类扩展,例如HomeControllerWindow扩展而不是GenericForwardComposer,那么您尝试使用的数据绑定类型将起作用。要实现此目的,请将apply更改为use,如下所示

<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?>
<window border="normal" id="home" use="com.test.HomeController">
    <caption label="@{home.name}"></caption>
    <button label="text"></button>
</window>

答案 2 :(得分:0)

这可能会对你有帮助。

控制器:

package foo;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zul.*;

public class MyComposer extends SelectorComposer<Window> {

    @Wire
    Textbox input;
    @Wire
    Label output;

    @Listen("onClick=#ok")
    public void submit() {
        output.setValue(input.getValue());
    }
    @Listen("onClick=#cancel")
    public void cancel() {
        output.setValue("");
    }

}

在你的zul:

<window apply="foo.MyComposer">
    <div>
        Input: <textbox id="input" />
    </div>
    <div>
        Output: <label id="output" />
    </div>
    <button id="ok" label="Submit" />
    <button id="cancel" label="Clear" />
</window>

成员字段输入,输出自动分配标识符为&#34;输入&#34;和&#34;输出&#34;分别。当用户点击相应的按钮时,将调用方法submit()和cancel()。

http://books.zkoss.org/wiki/ZK_Developer%27s_Reference/MVC/Controller/Composer#Custom_Controller