los servicios son nulos en el controlador de primavera + ZK
Frecuentes
Visto 653 veces
2
Estoy tratando de integrar zk con Spring, pero de alguna manera no puedo hacer instancias de Spring para esos objetos de servicio/administración: S
Controlador, Tipo de producto controlador:
@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);
}
}
el 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>
Obtengo NullPointerException porque productTypeServivce es nulo.
sin embargo, si agrego onCreate="loadAll2(self);"
a la línea del cuadro de lista en .zul, entonces llamará al método loadAll2(Listbox lb)
de esa manera, productTypeService no es nulo y todo funciona bien.
¿Alguna idea de por qué? o como hacer que funcione?
1 Respuestas
1
Encontré la respuesta.
Solo hay que reemplazar
<div id="winDiv" apply="com.iknition.micutecake.controller.ProductTypeController">
con
<div id="winDiv" apply="${productTypeController}">
entonces zk usará spring resolver para resolver el controlador
Respondido el 12 de junio de 12 a las 22:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas spring zk or haz tu propia pregunta.