一、基于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,一切正常
相关推荐
struts2+ajax+easyui+json+datagrid增,删,改,查,分页,排序,有数据库
uploadfy+easyui+struts+json文件上传 利用uploadfy、easyui、struts和json技术实现文件上传 其中只在action中模拟接收文件,存储文件到指定目录,但是没有跟数据库打交道。 但是这个跟数据库打交道的问题,大家很...
jquery easyUI+struts2+spring+hibernate基于annotation实现的CRM
maven构建项目,简单的struts2、spring、mybatis结构实现,页面展示用的easyui
easyUI+struts2+spring+hibernate
struts2+hibernate3+mysql+jqueryeasyui1.3+myeclipse8.0 实现了用户信息分页,增删改操作,内有sql语句,项目直接导入就行了,适合初学者练练手 欢迎继续修改
easyui + Struts2,Mybatis,Spring的学生成绩管理系统.zip
1,shiro+hibernate4+struts2+spring+easyui+fusioncharts部分bootstrap样式全注解零配置简单权限管理web项目 2,简单shiro权限管控 细度到按钮 3,安装方法按config.properties参数配置你的数据库 4,运行dbsql.sql 5,...
Java Web Demo,前台使用easyUI控件、jQuery技术,后台使用Spring、Struts、Hibernate技术。具体运行参考:http://blog.csdn.net/fansy1990/article/details/39319335
jqueryeasyui+struts+spring+hibernate的整合,前台到后台完整的代码,事务配置,完整的jar包,可直接使用。
主从表关联+前台easyui+hibernate+struts2(条件查询)实现前端网页对后台的增删改查,前台网页是easyui界面,后台是struts2和hibernatede组合,前台页面也能够实现条件查询
Struts+Spring+Mybatis+EasyUI(jQuery)注解案例。采用注解的方式跟踪代码依赖性,实现替代配置文件功能。里面包含了平时用的增删改查及分页,分页查询时用的是存储过程,提高了数据库的性能。代码简单、易懂。
基于eclipse + easyUi1.2.6+common-fileupload + struts2实现带进度条的文件上传DEMO,具体效果跟思路可见我的博客:http://blog.csdn.net/jun55xiu/article/details/22042279
Easy+struts框架学生信息想下载就下载吧
基于网络的数据库管理系统,后台用数据库,前台是easyUI网页设计 后台用hibernate框架 和Struts2 两表联查
使用Struts2和jQuery EasyUI实现简单CRUD系统,从零开始,从基础的EasyUI与Struts2的使用json格式进行交互开始。
spring mvc + mybatis + maven + easyui + oracle 数据库实现增删改查
拼前辈的代码,完成emp.jsp页面+员工工号自增功能