1
如果我有2個.zul,一個有一個列表框,另一個是模式窗口。他們可以使用相同的控制器嗎?我只是無法得到它的工作。zk mvc 2 .zul共享相同的控制器
這個問題基本恢復了,我是不是必須在兩個.zul中使用apply="myController"
? 如果我這樣做,我得到nullpointerException在myList
,因爲我認爲zk實例化2控制器對象,並且該模式不存在myList
。但是如果我沒有在modal.zul上應用控制器,當我按下按鈕時沒有任何反應。
我該如何讓2 .zul使用同一個控制器實例?
mail.zul
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?>
<zk>
<hlayout>
<div id="winDiv" apply="com.company.controller.ProductController">
<vbox>
<listbox id="myList" width="690px" height="300px" >
<listhead>
<listheader hflex="min" label="id" sort="auto(id)" />
<listheader hflex="2" label="name" sort="auto(name)" />
<listheader hflex="4" label="description" sort="auto(description)" />
<listheader hflex="min" label="opcion"/>
</listhead>
</listbox>
</vbox>
</div>
<button label="new" id="new"/>
</hlayout>
</zk>
的modal.zul
<?xml version="1.0" encoding="UTF-8"?>
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<window id="modalProductType" title="Nuevo tipo de producto" border="normal" width="420px"
closable="true" position="center,center" **apply="com.company.controller.ProductController"**>
<grid>
<columns>
<column hflex="1"/>
<column hflex="2"/>
</columns>
<rows>
<row>
Clave:
<textbox hflex="1" value="@{product.id}" readonly="true"/>
</row>
<row>
Nombre:
<textbox id="txtname" value="@{product.name}" hflex="1" tabindex="1" />
</row>
<row>
Description:
<textbox value="@{product.description}" rows="5" hflex="1" tabindex="2" />
</row>
<row>
<cell colspan="2" style="text-align:center">
<hlayout>
<button width="100px" id="save" label="Aceptar"/>
<button width="100px" label="close"/>
</hlayout>
</cell>
</row>
</rows>
</grid>
</window>
ProductController.java
public class ProductTypeController extends SelectorComposer {
@WiredVariable
private ProductTypeService productTypeService;
@Wire
private Listbox myList;
//methods...
}
嗯,如果我使用2個控制器,一個用於模態,其他用於列表。我怎樣才能將模態控制器的信息傳遞給列表控制器以反映變化? – Kossel
您可以使用'EventQueue'或者直接將事件發送到您的列表控制器所應用的div的數據。我個人會建議使用'EventQueue'併爲您的案例參考一個示例[這裏](http://books.zkoss.org/wiki/ZK_Developer%27s_Reference/Event_Handling/Event_Queues#Example:_interactive_between_multiple_ZUL_pages) – kachhalimbu
實際上這應該是部分的答案。這非常有幫助 – Kossel