`
szlxh002
  • 浏览: 34485 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

easyui+struts2 实现tree的问题及解决办法

 
阅读更多



 一、基于struts2-json插件方式:   

 

最近在开发一个项目,前台用easyui的tree来显示组织机机构,开始用struts2-json结构,前台代码如下:

$('#organizeTree').tree({
            lines: true,
            url: '/framework/organizeAdminHandler.html?action=treedata',
            animate: true,
            onLoadSuccess: function (node, data) {
                $('body').data('depData', data);
            }, onClick: function (node) {
                var selectedId = node.id;
                $('#userlist').datagrid('load', { organizeId: selectedId });
            }
        });
后台的struts.xml配置如下:
		<action name="organizeAdminHandler" class="PiorganizeAction" method="organizeAdminHandler">
			<result type="json">
				<param name="root">result</param>
			</result>
		</action>
 
action的代码如下:
    public String organizeAdminHandler(){
        if("treedata".equals(action)){
            treedata();
        }
        return SUCCESS;
    }
    private void treedata(){
        List<Piorganize> piorganizeList = piorganizeDao.getPiorgnizeByUser(getPiuser());
        String treeJson =genTreeData(piorganizeList, 0);
        treeJson = "[" +treeJson +"]";
        setResult(treeJson);
    }

 

根据调试,在前台获取的data是一个字符串类型的数据,如下所示,

 

 

 结果前台tree显示都是undefined.

显示把action返回的数据作为tree的url这种方式有问题,把前台改成如下代码:

$.getJSON("getSiteTreeAction.action", function(json) {
    var strjson = eval(json);
    $('#organizeTree').tree({
        lines: true,
        data:strjson
animate: true,
        onLoadSuccess: function (node, data) {
            $('body').data('depData', data);
        }, onClick: function (node) {
            var selectedId = node.id;
            $('#userlist').datagrid('load', {organizeId: selectedId});
        }
    });
};

 一切正常

但这种先把数据获取之后,生成前台json对象再对tree赋值的方式有点多此一举。但也想不到好的方法,只能采用下面的方式。

 

2.采用response直接write的方式。

 

前台代码如下:

        $('#organizeTree').tree({
            lines: true,
            url: '/framework/organizeAdminHandler.html?action=treedata',
            animate: true,
            onLoadSuccess: function (node, data) {
                $('body').data('depData', data);
            }, onClick: function (node) {
                var selectedId = node.id;
                $('#userlist').datagrid('load', { organizeId: selectedId });
            }
        });

 struts.xml的配置如下:

 

<action name="organizeAdminHandler" class="PiorganizeAction" method="organizeAdminHandler">

</action>

没有任何result.

 

action代码如下:

    public void organizeAdminHandler(){
        if("treedata".equals(action)){
            treedata();
        }
    }
    private void treedata(){
        List<Piorganize> piorganizeList = piorganizeDao.getPiorgnizeByUser(getPiuser());
        String treeJson =genTreeData(piorganizeList, 0);
        treeJson = "[" +treeJson +"]";
        writeReponse(treeJson);
    }

    public void writeReponse(String content) {
        try {
            HttpServletResponse resp = ServletActionContext.getResponse();
            resp.setContentType("application/json;charset=UTF-8");
            PrintWriter out = resp.getWriter();
            out.write(content);
            out.flush();
            out.close();
        } catch (IOException exc) {
            exc.printStackTrace();
        }
    }

 

 通过调试,前台data是一个object,一切正常

 

 

 

 

 

 

  • 大小: 84.3 KB
  • 大小: 36.1 KB
分享到:
评论

相关推荐

    EasyUI实现异步加载tree(整合Struts2)源码

    在本文中,我们将深入探讨如何使用EasyUI框架实现异步加载Tree组件,并将其与Struts2框架整合。EasyUI是一个基于jQuery的轻量级前端框架,提供了丰富的UI组件,包括Tree,它能够方便地构建出层次结构的数据展示。而...

    DWR+jquery2.x+easyUI1.3.x开发富客户端应用

    2. **特性**:EasyUI 提供了许多常用的 UI 控件,如 Accordion、ComboBox、Menu、Dialog、Tabs、Tree、ValidateBox、Window 等,这些控件极大地简化了前端界面的开发工作。 3. **优势**:与 ExtJS 相比,EasyUI ...

    EasyUI开发案例集合

    4. **EasyUI 实现异步加载 tree(整合Struts2)源码_7852021.zip**: 这个案例展示了如何结合 Struts2 框架,使用 EasyUI 的 Tree 控件实现异步加载数据。异步加载可以提高用户体验,只在需要时才请求和显示数据。 5...

    EasyUI常用控件使用案例

    SSH框架(Struts2、Spring、Hibernate)是JavaWeb开发中的经典组合,用于处理业务逻辑和数据持久化。 首先,`layout`是EasyUI的核心布局控件,它允许开发者将页面分割成多个区域,方便地组织和管理内容。`layout`...

    etmvc + Easyui

    etmvc + Easyui +oracle 开发实例,带数据库,内有treegrid,tree,data等案例... 简易但不简单,其设计和实现借鉴业界众多的优秀框架,如struts,spring mvc,ror,grails等, 力图为Java开发人员提供一套高效的开发框架。]

    tree 后台增删改查的实现

    在IT行业中,"tree 后台增删改查的实现"是一个常见的需求,尤其是在构建管理界面或者数据展示系统时。这个主题主要涉及到前端的数据结构表示(树形结构)以及后端的数据操作逻辑,包括添加(Add)、删除(Delete)、...

    easyUI文件

    例如,我们可以使用Struts2的&lt;s:tree&gt;标签来渲染EasyUI的tree组件,通过配置标签属性来指定数据源和节点的显示方式。同样,和标签可以用来创建布局和选项卡,与EasyUI的对应组件协同工作。 在实际项目中,可能需要...

    EAsyUI 学习

    在源码 _7852021.zip 中,你将学习到如何结合 Struts2 框架实现 EasyUI Tree 的异步加载,这在处理大量或动态更新的数据时非常关键。了解这个过程有助于提升应用的性能和用户体验。 5. **iBatis 实战** iBatis 是...

    jQuery-Easyui 多级菜单 前后台

    根据提供的文件信息,我们可以推断出这是一个关于使用`jQuery-EasyUI`框架实现多级菜单功能的示例代码。此代码主要关注后端部分,即如何构建和返回一个JSON格式的数据,供前端显示多级菜单使用。下面我们将详细介绍...

    easyui完整包

    6. **与后端框架集成**:EasyUI 通常与Java后端框架(如Spring MVC、Struts2等)或者PHP、ASP.NET等其他语言的后端框架配合使用,实现数据的动态加载和异步交互。 7. **Ajax与JSON**:EasyUI 利用jQuery的Ajax功能...

    easyUI前端框架jar包

    在实际项目中,EasyUI 可以与后端框架如 SpringMVC、Struts2 或 Node.js 配合使用,实现前后端数据交互。为了提高开发效率,可以配合使用诸如 Maven 或 Gradle 这样的构建工具,将 EasyUI 作为依赖项管理。 总的来...

    EasyUI 实例代码

    - **Java 后端处理**:在 EasyUI 实例中,通常会用 Java(例如 Spring Boot 或 Struts)作为后端处理逻辑,提供数据接口。 - **JSP 页面**:JSP(JavaServer Pages)用于创建动态网页,EasyUI 的组件可以通过 JSP ...

    jQueryEasyUI

    1. **Ajax通信**:jQueryEasyUI的组件可以利用jQuery的Ajax功能与Java后端进行数据交互,如发送请求到Spring MVC或Struts2的Action,获取JSON数据并更新界面。 2. **Servlet或Controller处理**:在Java后端,可以...

    SYPRO示例项目源码和EasyUI入门视频教程

    sshe示例程序(struts2+spring3+hibernate4+easyui)(Maven构建) easyui1.2.6整站文件.zip jquery1.7.2中文API修正版.chm jquery.easyui-1.2.5源码未压缩版.rar jquery-easyui-1.2.6.zip JQuery-esqyUI中文-1.2.5API....

    Jquery easyui 实现动态树

    在本文中,我们将深入探讨如何使用jQuery EasyUI库来实现动态树形结构。jQuery EasyUI是一个基于jQuery的轻量级框架,它提供了一系列方便的组件,包括树形控件,帮助开发者快速构建用户界面。 首先,为了使用jQuery...

    jquery-easyui-1.3.3

    在实际应用中,jQuery EasyUI 可以与后端框架如Spring、Struts等无缝集成,实现前后端分离的开发模式。通过Ajax技术,EasyUI 可以实时地从服务器获取数据,更新用户界面,实现动态交互。例如,数据网格组件...

    树说明文档.doc

    综上所述,本文档详细介绍了如何使用EasyUI框架创建多级树形结构,并提供了实现的具体步骤和代码示例,以及在Struts2框架下如何配置和请求树形数据的相关信息。这对于理解和实现基于框架的树形结构非常有帮助。

    大数据功能模块概要设计.doc

    2.1 **基础页面组件**:前端页面通常基于jQuery框架,如easyui、jquery ui或dwz,用于构建页面元素如图表、编辑器、表单验证、listbox、日期组件、进度条、对话框、按钮、Grid、Tree、Menu、Tab和Form等。...

    大数据功能模块概要设计_V1.1.pdf

    - **J2EE基础类库**:如Apache Commons、JSON-Lib用于JSON处理,JUnit进行单元测试,Struts2或Spring MVC作为MVC框架,Spring处理业务逻辑,ORM层可以选择ibatis、mybatis或hibernate。 - **中间件**:商业中间件...

    大数据功能模块概要设计_V1.1.docx

    - 前端页面组件如jQuery UI、EasyUI、DWZ等用于构建用户界面,需考虑兼容性问题,尤其是对旧版IE浏览器的支持。 - 常见组件如图表组件(jfreechart/fusioncharts)、富文本编辑器(KindEditor/CKEditor)、多文件...

Global site tag (gtag.js) - Google Analytics