Struts2中的EasyUI
Struts2中的EasyUI
一、easy UI是类似于jQuery UI的插件库,它提供了丰富的各种常用插件:tree、datagrid...
tree插件:
语法:$(selector).tree([settings]);
常用属性:
常用方法、事件:
使用tree插件实现树形菜单:
客户端页面关键代码:
① 引入easy UI插件及样式文件
② 定义用来配置树形菜单的区域
③ 使用tree方法加载远程树形菜单数据
<script type="text/javascript"> $(function() { $("#easyui-tree").tree({ checkbox : true, url : 'basic_tree_date.json', onBeforeLoad : function(node, param) { //alert('开始请求数据') }, onLoadSuccess : function(node, data) { //alert('数据请求成功') }, onLoadError : function() { //alert('加载失败') }, onClick : function(node) { //获取指定的节点对象 $('#easyui-tree').tree('getNode',node.target) //alert($('#easyui-tree').tree('getNode',node.target).id) //获取指定的节点数据,包括子节点 console.log($('#easyui-tree').tree('getData',node.target)) //获取根节点,返回节点对象 console.log($('#easyui-tree').tree('getRoot',node.target)) console.log($('#easyui-tree').tree('getParent',node.target)) //获取子节点 console.log($('#easyui-tree').tree('getChildren',node.target)) //指定节点进行添加操作 /* if( $('#easyui-tree').tree('getChildren',node.target).length==0){ $('#easyui-tree').tree('append',{ parent:node.target, data:[{text:'呵呵'}] }) } */ }, onlyLeafCheck : false, //随意拖动 dnd : true, }); }); function bs() { //加载tree数据 $('#easyui-tree').tree('loadData',[{text:'number11'}]) //重新加载树的数据 $("#easyui-tree").tree('reload') //获取所有勾选选中的节点 console.log($('#easyui-tree').tree('getChecked')) //获取所有选中的节点 console.log($('#easyui-tree').tree('getSelected')) //根据id属性值找到该节点 console.log($('#easyui-tree').tree('find',12)) //选中一个节点 var node= $('#easyui-tree').tree('find',12); $('#easyui-tree').tree('select',node.target); //选中 var node= $('#easyui-tree').tree('find',12); $('#easyui-tree').tree('check',node.target); //指定节点不选中 var node= $('#easyui-tree').tree('find',12); $('#easyui-tree').tree('uncheck',node.target); //指定节点折叠 var node= $('#easyui-tree').tree('find',1); $('#easyui-tree').tree('collapse',node.target); //展开所有节点 $('#easyui-tree').tree('expandAll') } </script>
④ 创建服务器端basic_tree_date.json--待加载的远程树形菜单数据
Node对象参数:
tree数据节点:
basic_tree_date.json:
实现效果:
datagrid插件:
语法:$(selector).datagrid([settings]);
参数settings:用于配置datagrid的键值对集合
常用属性:
常用方法:
常用事件:
Column对象常用属性:是一个数组对象,它的每个元素也是一个数组。它定义了每个列的字段。
① 客户端页面代码:datagrid2.jsp
引入easy UI插件及样式文件
② 定义用来放置数据列表的区域
③ 使用datagrid方法创建列表组件展示远程数据
<script type="text/javascript"> $(function(){ $('#dg').datagrid({ //远程请求数据的url路径 url:'<%=path%>/datagrid/datagrid_server.jsp', width:800, height:300, //表头的小头标 iconCls:'icon-search', //显示行号 rowNumbers:true, //显示底部分页栏 pagination:true, //默认显示每页记录数 pageSize:5, pageList:[5,10,15], //指定列 columns:[[ {field:'ck',checkbox:true}, {field:'title',title:'投票标题',width:408}, {field:'options',title:'备选项数',width:60,align:'center'}, {field:'participants',title:'参与人数',width:60,align:'center'} ]], loadMsg:"正努力为您加载中......", //只允许选中一行 singleSelect:true, //隔行变色 striped:true, rownumbers:true, }); }); </script>
④ 创建列表数据工具类CridNode:封装属性,并定义无参和带参构造
public class CridNode { private Long id;// 投票id private String title;// 投票标题 private String options;// 备选项数 private String participants;// 参选人数 public CridNode() { } public CridNode(Long id, String title, String options, String participants) { super(); this.id = id; this.title = title; this.options = options; this.participants = participants; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getOptions() { return options; } public void setOptions(String options) { this.options = options; } public String getParticipants() { return participants; } public void setParticipants(String participants) { this.participants = participants; }
⑤服务器端代码:datagrid_server.jsp 根据分页参数获取待加载的列表数据
<% //构造测试数据 List<CridNode> list = new ArrayList<CridNode>(); list.add(new CridNode(1L, "选出你心目中最好的下载工具", "2", "6")); list.add(new CridNode(2L, "选出你心目中最好的输入法", "5", "4")); list.add(new CridNode(3L, "选出你心目中最好的浏览器", "5", "11")); list.add(new CridNode(4L, "选出你心目中最好的杀毒软件", "6", "4")); list.add(new CridNode(5L, "选出你心目中最好的社交软件", "3", "14")); list.add(new CridNode(6L, "选出你心目中最好的聊天工具", "3", "2")); list.add(new CridNode(7L, "选出你心目中最好的翻译软件", "5", "0")); list.add(new CridNode(8L, "选出你心目中最好的播放器", "2", "23")); list.add(new CridNode(9L, "选出你心目中最好的免费软件", "4", "7")); list.add(new CridNode(10L, "选出你心目中最好的录音软件", "4", "18")); list.add(new CridNode(11L, "选出你心目中最好的刷机软件", "5", "6")); //获取客户端传递的分页参数 // 默认参数rows表示每页显示记录条数, 默认参数page表示当前页数 Integer pageSize=Integer.parseInt(request.getParameter("rows")); Integer pageNumber=Integer.parseInt(request.getParameter("page")); //默认参数page表示当前页数 StringBuilder builder = new StringBuilder("{\"total\":"+ list.size() + ",\"rows\":["); //计算开始记录数 int start = (pageNumber - 1) * pageSize; //计算结束记录数 int end = start + pageSize; //根据分页起始参数构建当前页的列表数据 for (int i = start; i < end && i < list.size(); i++) { CridNode gn = list.get(i); builder.append("{\"id\":\"" + gn.getId() + "\",\"title\":\""+ gn.getTitle() + "\",\"options\":" + gn.getOptions() + ",\"participants\":" + gn.getParticipants() + "},"); } String gridJSON = builder.toString(); if (gridJSON.endsWith(",")) { gridJSON = gridJSON.substring(0, gridJSON.lastIndexOf(",")); } out.print(gridJSON + "]}"); %>
实现效果:
Struts2中的EasyUI的更多相关文章
- struts2中从后台读取数据到<s:select>
看到网上好多有struts2中从后台读取数据到<s:select>的,但都 不太详细,可能是我自己理解不了吧!所以我自己做了 一个,其中可能 有很多不好的地方,望广大网友指出 结果如图 p ...
- struts2中各个jar包作用
Struts2.3.4 所需的Jar包及介绍 Jar包的分类 jar包名称 jar包版本 jar包 文件名 jar包 的作用 jar包内包含的主要包路径及主要类 依赖的自有jar包名称 依赖的第三方j ...
- Struts2中Date日期转换的问题
今天跑程序的时候莫名其妙的出现了下面的一个异常: java.lang.NoSuchMethodException:com.ca.agent.model.mybatis.ApprovalInforC ...
- struts2中的jar包
核心包: (后面数字是版本号,不同struts2版本,数字可能不一样.) struts2-core-2.1.8.1 struts2的核心jar包,不可缺少的 xwork-core-2.1.6 xwor ...
- struts2中的jsp值传到后台action接收的三种方法
struts2中的Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="pos ...
- Struts2中动态方法的调用
Struts2中动态方法调用就是为了解决一个action对应多个请求的处理,以免action太多. 主要有一下三种方法:指定method属性.感叹号方式和通配符方式.推荐使用第三种方式. 1.指定me ...
- 简单理解Struts2中拦截器与过滤器的区别及执行顺序
简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...
- 关于struts2中的相对路径与绝对路径
从昨天开始复习了struts2的课程,之所以重新走上java的道路,是觉得写了一年的go程序,并没有感觉到学习了什么,反而把java给忘得干干净净的.想想我的计划,年后就要换工作了,至于要换到什么方向 ...
- 5.Struts2中的拦截器
拦截器是Struts2中的核心,其自带很多很多的拦截器,这里主要介绍一下自定义拦截器,恩多一半情况下呢?我们不需要使用到自定义的拦截器,Struts2本身已经提 供了很多的拦截器供我们使用,对于自定义 ...
随机推荐
- [译]Godot系列教程二 - 场景实例化(Instancing)
场景实例化(Instancing) 原理阐述 创建一个场景并将节点扔到里面对于小项目是适用的,但随着项目不断发展,用到越来越多的节点,整个项目很快就会演化成难以管理的状态. 为了解决这个问题,Godo ...
- Cats(3)- freeK-Free编程更轻松,Free programming with freeK
在上一节我们讨论了通过Coproduct来实现DSL组合:用一些功能简单的基础DSL组合成符合大型多复杂功能应用的DSL.但是我们发现:cats在处理多层递归Coproduct结构时会出现编译问题.再 ...
- 使用jenkins配置.net mvc网站进行持续集成二
上一篇使用jenkins配置.net mvc网站进行持续集成一只是简单介绍了jenkins构建站点到本地服务器,这一篇,就来讲解如何部署站点到指定的服务器上面. 1.IIS远程发布配置 1.在服务器管 ...
- OData V4 系列 服务创建
OData 学习目录 创建应用程序 添加引用 install-package entityframework . Install-Package Microsoft.AspNet.Odata . In ...
- Dog_Hybird的诞生
起因 开玩笑说“iOS搞不动了”,另外一方面iOS组的哥哥们给力,少一个我也妥妥的.又听闻web前端组来了一个不得了的人物,“老司机,带带我”这种机会不能错过,1个多月前就申请转web前端了.开始是苦 ...
- BFC总结
图1:问题图 图2:代码 图3:解决图 问题图与解决图的区别:黄色箭头那行代码的无和有 BFC 定义 BFC(Block formatting context)直译为"块级格式化 ...
- 1-1 console的用法
console里面具体提供了哪些方法可以供我们平时调试时使用. 目前控制台方法和属性有: ["$$", "$x", "dir", " ...
- 主成分分析(principal components analysis, PCA)
原理 计算方法 主要性质 有关统计量 主成分个数的选取 ------------------------------------------------------------------------ ...
- Azure IoT带来更高效的新能源生产和会看人脸色的无人超市
全球分析机构都认为物联网将在未来几年呈现爆发式增长,到2020年,各种传感器.新型物联网设备,再加上传统PC.智能手机.平板电脑.网络电视,以及各类可穿戴智能设备,将交织成一个由300亿到500亿台设 ...
- 高性能Linux服务器构建实战笔记
一. web应用篇 1 HTTP服务器Nginx 1.1 性能上.功能上.安装上与Apache对比 l 性能上占用系统资源少,支持并发高 ...