使用spring mvc 注解 异步加载一棵树

jsp:

<ul id="orgInfoTree"></ul>   
    $(function(){
loadOrgTree();
}); function loadOrgTree(){
$('#orgInfoTree').tree({
checkbox: true,
lines:true,
url: '<%=request.getContextPath()%>/FNCG_PD_QRY/loadOrgTree', 这是第一次加载树的url 加载根节点
onBeforeExpand:function(node){
$("#orgInfoTree").tree('options').url='<%=request.getContextPath()%>/FNCG_PD_QRY/loadOrgChildrenTree?FID='+node.id; 这是点击根节点的时候发送请求去加载子节点
},
onClick:function(node){
$("#orgInfoTree").tree('options').url='<%=request.getContextPath()%>/FNCG_PD_QRY/loadOrgChildrenTree?FID='+node.id;
}
});
}

java代码部分

  controller部分: 

    @RequestMapping("/loadOrgTree")
@ResponseBody
public String loadOrgTree(){
List<OrgTree> OTList = fncg_PD_QRY_Service.loadOrgTree();
StringBuffer sb = new StringBuffer();
sb.append("[");
for (OrgTree orgTree : OTList) {
sb.append("{\"id\":" + orgTree.getORGN_CODE() + " ,\"text\":" + "\""
+ orgTree.getORGN_NAME() + "\"" + " ,\"state\":"
+ " \"closed\" " + " ,\"attributes\":" + "\""
+ orgTree.getORGN_LVL() + "\"" + "},");
}
sb.deleteCharAt(sb.length() - );
sb.append("]");
return sb.toString();
} @RequestMapping("/loadOrgChildrenTree")
@ResponseBody
public String loadOrgChildrenTree(String FID){
List<OrgTree> OTList = fncg_PD_QRY_Service.loadOrgChildrenTree(FID);
StringBuffer sb = new StringBuffer();
sb.append("[");
for (OrgTree orgTree : OTList) {
sb.append("{\"id\":" + orgTree.getORGN_CODE() + " ,\"text\":" + "\""
+ orgTree.getORGN_NAME() + "\"" + " ,\"state\":"
+ " \"closed\" " + " ,\"attributes\":" + "\""
+ orgTree.getORGN_LVL() + "\"" + "},");
}
sb.deleteCharAt(sb.length() - );
sb.append("]");
return sb.toString();
}

  service部分:

    public List<OrgTree> loadOrgTree(){
return fncg_PD_QRY_Dao.loadOrgTree();
} public List<OrgTree> loadOrgChildrenTree(String FID){
return fncg_PD_QRY_Dao.loadOrgChildrenTree(FID);
}

  

  dao部分:

    public List<OrgTree> loadOrgTree();

    public List<OrgTree> loadOrgChildrenTree(@Param("FID") String FID);

  

  xml,接口对应的sql部分

    <select id="loadOrgTree" resultMap="com.cvicin.products.productManage.fngg.mapper.poRes.OrgTree">
SELECT B.ID AS ID,B.ORGN_CODE AS ORGN_CODE,B.F_ORGN_ID AS F_ORGN_ID,B.ORGN_NAME AS ORGN_NAME,B.ORGN_LVL AS ORGN_LVL FROM ORGN_BASIC B WHERE B.ORGN_LVL = (SELECT min(A.ORGN_LVL) FROM ORGN_BASIC A)
</select> <select id="loadOrgChildrenTree" parameterType="java.lang.String" resultMap="com.cvicin.products.productManage.fngg.mapper.poRes.OrgTree">
SELECT B.ID AS ID,B.ORGN_CODE AS ORGN_CODE,B.F_ORGN_ID AS F_ORGN_ID,B.ORGN_NAME AS ORGN_NAME,B.ORGN_LVL AS ORGN_LVL FROM ORGN_BASIC B WHERE B.F_ORGN_ID = #{FID,jdbcType=VARCHAR}
</select>

javaBean和对应的xml:

public class OrgTree extends BasePO{

    private int ID;
private String ORGN_CODE;
private String F_ORGN_ID;
private String ORGN_NAME;
private String ORGN_LVL; public int getID() {
return ID;
}
public void setID(int iD) {
ID = iD;
}
public String getORGN_CODE() {
return ORGN_CODE;
}
public void setORGN_CODE(String oRGN_CODE) {
ORGN_CODE = oRGN_CODE;
}
public String getF_ORGN_ID() {
return F_ORGN_ID;
}
public void setF_ORGN_ID(String f_ORGN_ID) {
F_ORGN_ID = f_ORGN_ID;
}
public String getORGN_NAME() {
return ORGN_NAME;
}
public void setORGN_NAME(String oRGN_NAME) {
ORGN_NAME = oRGN_NAME;
}
public String getORGN_LVL() {
return ORGN_LVL;
}
public void setORGN_LVL(String oRGN_LVL) {
ORGN_LVL = oRGN_LVL;
} }
    <resultMap id="OrgTree" type="com.cvicin.products.productManage.OrgTree">
<result property="ID" column="ID" />
<result property="ORGN_CODE" column="ORGN_CODE" />
<result property="F_ORGN_ID" column="F_ORGN_ID" />
<result property="ORGN_NAME" column="ORGN_NAME" />
<result property="ORGN_LVL" column="ORGN_LVL" />
</resultMap>

一颗无刷新的,异步加载的tree

spring mvc easyui tree 异步加载树的更多相关文章

  1. jquery easyui tree异步加载子节点

    easyui中的树可以从标记中建立,也可以通过指定一个URL属性读取数据建立.如果想建立一棵异步树,需要为每个节点指定一个id属性值,这样在加载数据时会自动向后台传递id参数. <ul id=& ...

  2. MVC4中EasyUI Tree异步加载JSON数据生成树

      1,首先构造tree接受的格式化数据结构MODEL /// <summary> /// 定义EasyUI树的相关数据,方便控制器生成Json数据进行传递 /// </summar ...

  3. ztree异步加载树节点

    参考文档:https://www.cnblogs.com/tenWood/p/8620708.html ztree api地址:http://www.treejs.cn/v3/api.php 说明:j ...

  4. Jquery Ztree异步加载树

    1. 下载jquery的JS文件/ztree的CSS文件和JS文件 https://jquery.com/download/ https://gitee.com/zTree/zTree_v3/tree ...

  5. easyui datagrid 异步加载数据时滚动条有时会自动滚到最底部的问题

    在使用easyui 的datagrid异步加载数据时发现滚动条有时会自动滚到最底部.经测试发现,如果加载数据前没有选中行则不会出现这个问题.这样我们可以在重新异步加载数据前取消选中行就可以避免这个问题 ...

  6. bootstrap异步加载树后样式显示问题

    整个过程: 1.先加载整个页面 2.通过jquery异步请求后台返回数据 3.循环遍历数据,拼接需要的内容 4.把拼接好的数据加载到页面中. 问题: 把拼接好的内容加载到页面后,样式显示不正确.而如果 ...

  7. EasyUI实现异步加载tree(整合Struts2)

    首先jsp页面有一ul用于展现Tree <ul id="mytree"></ul> 加载Tree <script type="text/ja ...

  8. ContextLoaderListener和Spring MVC中的DispatcherServlet加载内容的区别

    一:ContextLoaderListener加载内容 二:DispatcherServlt加载内容 ContextLoaderListener和DispatcherServlet都会在Web容器启动 ...

  9. ContextLoaderListener和Spring MVC中的DispatcherServlet加载内容的区别【转】

    原文地址:https://blog.csdn.net/py_xin/article/details/52052627 ContextLoaderListener和DispatcherServlet都会 ...

随机推荐

  1. Live555 Streaming from a live source

    https://www.mail-archive.com/live-devel@lists.live555.com/msg05506.html-----ask--------------------- ...

  2. MySQL高可用性大杀器之MHA | 火丁笔记

    MySQL高可用性大杀器之MHA | 火丁笔记 MySQL高可用性大杀器之MHA

  3. Spring事务-三种实现方式

    一.引入JAR文件: 二.开始搭建分层架构---创建账户(Account)和股票(Stock)实体类 Account: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

  4. OS开发网络篇—监测网络状态

    iOS开发网络篇—监测网络状态 一.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行 ...

  5. Android ADT离线更新办法

    Troubleshooting ADT Installation If you are having trouble downloading the ADT plugin after followin ...

  6. 关于TXT转CHM的完整解决方式

    为什么要转CHM? 有些书,TXT的资源非常好找,而CHM的资源非常难找(先不论PDF格式的,只是话说PDF格式的没有一个书签文件夹看起来也非常难受) 而CHM格式在左側有一个文件夹结构,我最喜欢这个 ...

  7. android 15 activity跳转

    从一个屏幕跳到另一个屏幕,一个activity跳转到另一个activity,Intent类用于组件之间传递数据和跳转,组件包括不仅activity. package com.sxt.day04_01; ...

  8. 使用blktrace统计磁盘块I/O访问频率 + IO调度CFQ

    http://blog.chinaunix.net/uid-24774106-id-4096470.html http://blog.csdn.net/wyzxg/article/details/74 ...

  9. Java中ArrayList问题:删除一个ArrayList中的重复元素,注意留意一个问题

    该问题有两种方法: 一 利用两个数组,此法简单,不讨论 二 利用一个数组,从第0个开始依次取元素,并在其后元素中查找是否有该元素,有则删掉后面的重复元素,依次遍历.---但是这种情况要特别注意,当后续 ...

  10. iOS进度指示器——NSProgress

    iOS进度指示器——NSProgress 一.引言 在iOS7之前,系统一直没有提供一个完整的框架来描述任务进度相关的功能.这使得在开发中进行耗时任务进度的监听将什么麻烦,在iOS7之后,系统提供了N ...