Переменная в iframe с zk

У меня есть для каждого в моей странице zk, и в каждом я создаю столбец, и в моем столбце мне нужно добавить 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(){

  }

}

Спасибо

1 ответ

Решение

Если твой 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 маршрут, вы можете получить доступ к значениям параметров URL из test.zul используя ЗК Execution учебный класс:

Execution execution = Executions.getCurrent();
execution.getParameter("myValue");
Другие вопросы по тегам