2012-06-12 9 views
2

Я пытаюсь интегрировать гк с весной, но так или иначе я не могу сделать пружинные экземпляры тех услуг/управления объектами: 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);    
    } 

    } 

Zul

<?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);" к ListBox линии в .zul , то он будет вызывать метод loadAll2(Listbox lb) в этом пути, productTypeService не равно нулю, и все работает отлично.

любая идея почему? или как заставить его работать?

ответ

1

Я нашел ответ.

Просто надо заменить

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

с

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

так гк будет использовать родниковую распознаватель для решения контроллер

Смежные вопросы