2012-06-12 106 views
2

我想ZK與Spring集成,但不知何故,我不能讓春天的情況下,這些服務/管理對象:S服務在春季控制器+ ZK

控制器,ProductTypecontroller:

@Controller 
    public class ProductTypeController extends SelectorComposer { 

     @Resource 
     private ProductTypeService productTypeService; 

     @Listen("onCreate = listbox#typeList") 
     public void loadAll() { 
      BindingListModelList model = new BindingListModelList(productTypeService.getAll(), false); 
      typeList.setItemRenderer(new ProductTypeListRenderer()); 
      typeList.setModel(model); 
     } 

     public void loadAll2(Listbox lb){ 
     List lista = productTypeService.getAll(); 
     BindingListModelList model = new BindingListModelList(lista, false); 
     lb.setItemRenderer(new ProductTypeListRenderer()); 
     lb.setModel(model);    
    } 

    } 

的祖爾

<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?> 
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?> 
<zk> 
    <hlayout> 
    <div id="winDiv" apply="com.iknition.micutecake.controller.ProductTypeController"> 
     <vbox> 
      <listbox id="typeList" width="450px" height="300px" > 
       <listhead> 
        <listheader width="50px" label="id" sort="auto(id)" /> 
        <listheader width="250px" label="name" sort="auto(name)" /> 
        <listheader width="140px" label="description" sort="auto(description)" /> 
       </listhead> 
      </listbox> 
     </vbox> 
    </div> 
     </hlayout> 
</zk> 

我得到NullPointerException異常,因爲productTypeSerivce爲空。

但是,如果我添加onCreate="loadAll2(self);"在.zul 列表框中行,然後它會調用該方法的方法loadAll2(Listbox lb),productTypeService不爲空,一切工作正常。

有什麼想法爲什麼?或如何使其工作?

回答

1

我找到了答案。

只是有更換

<div id="winDiv" apply="com.iknition.micutecake.controller.ProductTypeController"> 

<div id="winDiv" apply="${productTypeController}"> 

所以ZK將會採用彈簧解析器解析控制器