Переменная в 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");