0

我的 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 。谁能告诉我是什么问题?

4

3 回答 3

6

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 开发者参考 - MVVM

于 2012-10-24T14:30:06.663 回答
2

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

如果控制器从组件基类扩展,例如HomeController从扩展Window而不是GenericForwardComposer. 为此,请更改applyuse如下所示

<?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>
于 2012-10-22T07:42:33.257 回答
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>

成员字段 input、output 自动分配有标识符分别为“input”和“output”的组件。当用户点击相应的按钮时,将调用 submit() 和 cancel() 方法。

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

于 2015-03-10T22:30:10.420 回答