Java zk层次结构获取数据库

时间:2016-05-23 06:53:51

标签: java zk

我首先获取数据以查看树有问题我从服务impl获取数据,我有.zul视图如何从服务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));

    }

}

1 个答案:

答案 0 :(得分:1)

欢迎使用ZK框架。

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

  • MVC,在摇摆的方式。
  • MVC,有作曲家。
  • MVVM。

所以,首先要选择你想要的方式 与此设置一样,看起来你想要MVC与Composers,所以让我们从那里开始:

@Wire
private Violence violence;

如果Violence未扩展或实施任何ZK组件,则这是完全错误的 @Wire表示将zul组件连接到此类。

@Wire
private Window winViolenceInquiry;

这是正确的,只要你的窗口有id="winViolenceInquiry" 你看,我在zul =&gt;中有一个组件。我使用@Wire与此类建立了连接。

现在你应该在zul中有一个特定的组件,如网格,列表框或树 只要您不将ListModelList应用于该组件,就不会发生任何事情 所以第一步是宣布zul中的组件 然后我们使用@Wire在java类中建立连接。 最后一步,在doAfterCompose我们做:

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

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

现在有一些高级要点:

  1. 始终尝试将ListModelList作为全局最终变量 原因很简单,只要你使用这个模型:更改是通过ajax调用完成的,只有其中的更改,设置一个新的ListModelList将删除所有渲染的项目并再次附加所有新项目,所以长的ajax调用和客户端PC要渲染的比较重。

  2. 我建议您查看MVVM,因为这是一种非常简单快捷的编码方式,学习曲线比MVC快。

  3. 尝试使用SelectorComposer代替GenericForwardComposer,因为最后一个版本是“旧”版本,您可能会犯更多错误。 SelectorComposer还支持CSS3选择器,以便为您的组件连接。