带有 zk 的 iframe 中的变量



我的 zk 页面中有一个 for 每个,在每个页面中我正在创建一个列,在我的列中我需要添加一个 iframe,并且我需要将列的标签作为变量传递给每一帧。

我有这样的东西:

<zk>
          <window title="Dynamic Columns" border="normal" width="1824px" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('pkg$.DynamicColumnModel')">
<grid >
               <columns>
                  <column forEach="${vm.columnList}" label="${each}">
              <iframe 
        src="test.zul" />
                </column>
              </columns>
     </grid>
   </window>
</zk>

但是当我包含页面时我遇到了一个错误,我的第一个问题是我不知道如何将变量传递给每个 iframe。

我的java是这样的:

public class DynamicColumnModel {
private List<String> columnList = new ArrayList<String>();
 private String texto="123";
@Init
public void init(){
    columnList.add("Dynamic Col A");
    columnList.add("Dynamic Col B");
    columnList.add("Dynamic Col C");
    columnList.add("Dynamic Col D");
}
public List<String> getColumnList() {
    return columnList;
}
public void setColumnList(List<String> columnList) {
    this.columnList = columnList;
}
 public String getTexto() {
    return texto;
}
public void setTexto(String texto) {
    this.texto = texto;
}

@Command
   public void mensaje(){
  }
}

谢谢

如果您的each是一个String,它看起来像您将其设置为列标签,请继续将其作为URL参数传递给iframe

    <window apply="org.zkoss.bind.BindComposer"
            viewModel="@id('vm') @init('pkg$.DynamicColumnModel')">
        <grid >
            <columns>
                <column forEach="${vm.columnList}" label="${each}">
                    <iframe src="test.zul?myValue=${each}" />
                </column>
            </columns>
        </grid>
   </window>

请注意,当您使用 iframe 组件时,您将逐步走出 ZK。诚然,iframe本身指向一个 ZK 页面,但它不在同一个 ZK 环境中。iframe可以很容易地包含www.google.com,因此没有特定的 ZK 支持将值传递到以这种方式包含的 ZK 页面。

如果您只包含 ZK 页面并希望更流畅地将信息传递给这些页面,则需要使用 ZK 的 include 标记。查看有关如何将值传递到包含的 ZK 页面的文档。

编辑
如果采用iframe路线,则可以使用 ZK 的 Execution 类从test.zul访问 URL 参数值:

Execution execution = Executions.getCurrent();
execution.getParameter("myValue");

相关内容

  • 没有找到相关文章

最新更新