变量不会从java代码传递给zul

时间:2014-01-10 12:42:35

标签: java zk

我在创建时尝试将参数传递给zul:

.zul文件:

<window xmlns="http://www.zkoss.org/2005/zul" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:h="http://www.w3.org/1999/xhtml" 
        xmlns:zk="http://www.zkoss.org/2005/zk"
        xmlns:ca="http://www.zkoss.org/2005/zk/client"
        xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd "
        border="normal"
        closable="false"
        position="center,center"
        width="383px"
        height="270px"
        onCancel="self.detach();"
        id="decisionCommentWindow"
        title="${c:l('approvalTaskWindow.title')}"
        use="handlers.ZulHandler">


    <zk if="${isManufacturingKey}">

        <checkbox id="checkbox_id" label="check"  />

    </zk>

</window>

java代码,创建zul:

    ...
    Map args = new HashMap<String, Boolean>();
    Boolean isManufacturing = true;
    args.put("isManufacturingKey", isManufacturing);
    ZulHandler window = Preconditions
             .checkNotNull((ZulHandler) Executions.createComponents(
                            "/decision_comment_window.zul", null, args));
    window.setTitle(decisionModel.getName() + " decision");
    if (isManufacturing) {
           Checkbox checkbox = (Checkbox) Path
                        .getComponent("/decisionCommentWindow/emergency_change_checkbox_id");
           checkbox.setChecked(workflow.getEmergencyChange());//I have Null pointer here  because checkbox is null
    }
             ...

我这里有空指针。

你能帮助我吗?

1 个答案:

答案 0 :(得分:1)

感受到差异:

错误的变体

<zk if="${isManufacturingKey}">

正确变体

<zk if="${arg.isManufacturingKey}">
可能导致这个问题的原因是使用zk框架的旧版本 - 我不知道。