一、基于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,一切正常
相关推荐
在本文中,我们将深入探讨如何使用EasyUI框架实现异步加载Tree组件,并将其与Struts2框架整合。EasyUI是一个基于jQuery的轻量级前端框架,提供了丰富的UI组件,包括Tree,它能够方便地构建出层次结构的数据展示。而...
2. **特性**:EasyUI 提供了许多常用的 UI 控件,如 Accordion、ComboBox、Menu、Dialog、Tabs、Tree、ValidateBox、Window 等,这些控件极大地简化了前端界面的开发工作。 3. **优势**:与 ExtJS 相比,EasyUI ...
4. **EasyUI 实现异步加载 tree(整合Struts2)源码_7852021.zip**: 这个案例展示了如何结合 Struts2 框架,使用 EasyUI 的 Tree 控件实现异步加载数据。异步加载可以提高用户体验,只在需要时才请求和显示数据。 5...
SSH框架(Struts2、Spring、Hibernate)是JavaWeb开发中的经典组合,用于处理业务逻辑和数据持久化。 首先,`layout`是EasyUI的核心布局控件,它允许开发者将页面分割成多个区域,方便地组织和管理内容。`layout`...
etmvc + Easyui +oracle 开发实例,带数据库,内有treegrid,tree,data等案例... 简易但不简单,其设计和实现借鉴业界众多的优秀框架,如struts,spring mvc,ror,grails等, 力图为Java开发人员提供一套高效的开发框架。]
在IT行业中,"tree 后台增删改查的实现"是一个常见的需求,尤其是在构建管理界面或者数据展示系统时。这个主题主要涉及到前端的数据结构表示(树形结构)以及后端的数据操作逻辑,包括添加(Add)、删除(Delete)、...
例如,我们可以使用Struts2的<s:tree>标签来渲染EasyUI的tree组件,通过配置标签属性来指定数据源和节点的显示方式。同样,和标签可以用来创建布局和选项卡,与EasyUI的对应组件协同工作。 在实际项目中,可能需要...
在源码 _7852021.zip 中,你将学习到如何结合 Struts2 框架实现 EasyUI Tree 的异步加载,这在处理大量或动态更新的数据时非常关键。了解这个过程有助于提升应用的性能和用户体验。 5. **iBatis 实战** iBatis 是...
根据提供的文件信息,我们可以推断出这是一个关于使用`jQuery-EasyUI`框架实现多级菜单功能的示例代码。此代码主要关注后端部分,即如何构建和返回一个JSON格式的数据,供前端显示多级菜单使用。下面我们将详细介绍...
6. **与后端框架集成**:EasyUI 通常与Java后端框架(如Spring MVC、Struts2等)或者PHP、ASP.NET等其他语言的后端框架配合使用,实现数据的动态加载和异步交互。 7. **Ajax与JSON**:EasyUI 利用jQuery的Ajax功能...
在实际项目中,EasyUI 可以与后端框架如 SpringMVC、Struts2 或 Node.js 配合使用,实现前后端数据交互。为了提高开发效率,可以配合使用诸如 Maven 或 Gradle 这样的构建工具,将 EasyUI 作为依赖项管理。 总的来...
- **Java 后端处理**:在 EasyUI 实例中,通常会用 Java(例如 Spring Boot 或 Struts)作为后端处理逻辑,提供数据接口。 - **JSP 页面**:JSP(JavaServer Pages)用于创建动态网页,EasyUI 的组件可以通过 JSP ...
1. **Ajax通信**:jQueryEasyUI的组件可以利用jQuery的Ajax功能与Java后端进行数据交互,如发送请求到Spring MVC或Struts2的Action,获取JSON数据并更新界面。 2. **Servlet或Controller处理**:在Java后端,可以...
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的轻量级框架,它提供了一系列方便的组件,包括树形控件,帮助开发者快速构建用户界面。 首先,为了使用jQuery...
在实际应用中,jQuery EasyUI 可以与后端框架如Spring、Struts等无缝集成,实现前后端分离的开发模式。通过Ajax技术,EasyUI 可以实时地从服务器获取数据,更新用户界面,实现动态交互。例如,数据网格组件...
综上所述,本文档详细介绍了如何使用EasyUI框架创建多级树形结构,并提供了实现的具体步骤和代码示例,以及在Struts2框架下如何配置和请求树形数据的相关信息。这对于理解和实现基于框架的树形结构非常有帮助。
2.1 **基础页面组件**:前端页面通常基于jQuery框架,如easyui、jquery ui或dwz,用于构建页面元素如图表、编辑器、表单验证、listbox、日期组件、进度条、对话框、按钮、Grid、Tree、Menu、Tab和Form等。...
- **J2EE基础类库**:如Apache Commons、JSON-Lib用于JSON处理,JUnit进行单元测试,Struts2或Spring MVC作为MVC框架,Spring处理业务逻辑,ORM层可以选择ibatis、mybatis或hibernate。 - **中间件**:商业中间件...
- 前端页面组件如jQuery UI、EasyUI、DWZ等用于构建用户界面,需考虑兼容性问题,尤其是对旧版IE浏览器的支持。 - 常见组件如图表组件(jfreechart/fusioncharts)、富文本编辑器(KindEditor/CKEditor)、多文件...