我首先从服务impl提取数据时遇到了获取数据以查看树的问题,而我却从.im中获取了如何从服务imp向.zul中获取数据。

这是控制器

package id.co.fifgroup.ims.controller;

import java.util.List;

import id.co.fifgroup.core.service.SecurityService;
import id.co.fifgroup.ims.domain.Violence;
import id.co.fifgroup.ims.service.ViolenceService;

import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zkplus.spring.SpringUtil;
import org.zkoss.zul.ListModel;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Window;

public class ViolenceInquiryComposer extends GenericForwardComposer<Component> {

    @Wire
    private Violence violence;

    @Wire
    private Window winViolenceInquiry;

    @WireVariable(rewireOnActivate = true)
    private transient ViolenceService violenceServiceImpl = (ViolenceService) SpringUtil.getBean("violenceServiceImpl");;

    @Override
    public void doAfterCompose(Component comp) throws Exception {
        super.doAfterCompose(comp);
        initParentViolence();
    }

    public ListModel<Violence> initParentViolence(){
        Violence violence = new Violence();
        return new ListModelList<Violence>(violenceServiceImpl.getViolence(1));

    }

}

最佳答案

欢迎使用ZK框架。

我可以看到您在框架方面没有很多经验,所以让我们开始吧。
首先,ZK具有3种不同的实现:


MVC,以摇摆的方式。
MVC,带有作曲家。
MVVM。


因此,第一件事就是选择您要走的路。
与该设置一样,您似乎希望使用带有Composers的MVC,所以让我们从这里开始:

@Wire
private Violence violence;


如果Violence没有扩展或实现任何ZK组件,这是完全错误的。
@Wire代表将zul组件连接到此类。

@Wire
private Window winViolenceInquiry;


只要您的窗口具有id="winViolenceInquiry",这是正确的。
您会看到,我在zul =>中有一个组件,我通过@Wire建立了与此类的连接。

现在,您应该在zul中有一个特定的组件,例如网格,列表框或树。
只要您不将ListModelList应用于该组件,什么都不会发生。
因此,第一步是在zul中声明组件。
然后,使用@Wire在java类中建立连接。
最后一步,在doAfterCompose中,我们执行以下操作:

@Override
public void doAfterCompose(Component comp) throws Exception {
    super.doAfterCompose(comp);
    myList.setModel(initParentViolence());
}


不要忘记在zul中添加渲染器或使用模板标签,以了解如何正确渲染它。

现在有一些要点:


始终尝试使ListModelList成为全局最终变量。
原因很简单,只要您使用此模型:更改将由仅具有更改的ajax调用完成,设置新的ListModelList将删除所有渲染的项目并再次附加所有新的项目,因此ajax调用很长,并且对于客户端PC而言要重一些。
我建议您检查MVVM,因为这是一种非常简单快速的编码方式,而且学习曲线比MVC更快。
尝试使用SelectorComposer代替GenericForwardComposer,因为最后一个是“旧”版本,在那里您可能会犯更多错误。
SelectorComposer还支持CSS3-selector,以便对组件进行接线。

关于java - Java ZK层次结构获取数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37384356/

10-11 03:46