- 浏览: 1051477 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (1355)
- test (75)
- 红茶和绿茶 (1)
- Jave SE (206)
- Oracle (19)
- English (177)
- Log4j (5)
- RIA(Rich Internet Applications) (9)
- Ext Js (6)
- Android (14)
- Logo (0)
- 文字采撷 (287)
- 使用技巧 (92)
- Project Management (22)
- Hibernate (12)
- Struts (5)
- 规则引擎 (1)
- Html & Javasctipt (56)
- Spring MVC (10)
- Maven (17)
- Java Test (17)
- Linux (16)
- Tools (1)
- CV (0)
- Middleware (2)
- HTML5 (2)
- Algorithms (4)
- Web Service (15)
- 留学 (15)
- LADP (5)
- PXCOA (0)
- SysLog (6)
- SSO (3)
- Spring Security (4)
- Spring Batch (1)
- Jmail (1)
- Bible (4)
- Java Thread (5)
- Architect (6)
- github (2)
- Java Swing (12)
- NoSQL (7)
- UML (2)
- 敏捷(Agile) (7)
- Hudson+Maven+SVN (15)
- cloud computing (2)
- Bahasa Indonesia (1)
- jBPM (6)
- 民俗知识 (3)
- Consulting (1)
- Mysql (5)
- SAP (1)
- 微信公众平台接口开发 (3)
- 做生意 (1)
- 西餐 (1)
- Banking (1)
- Flex (0)
- 黄金投资 (1)
- Apache Tomcat 集群 (3)
- Hadoop (7)
- 需求分析 (1)
- 银行知识 (3)
- 产品管理 (2)
- 钢琴Music (3)
- 设计 (3)
- Marketing (2)
- US Life (3)
- 算法 (14)
- BigData (4)
- test红茶和绿茶Jave SEOracleEnglishLog4jRIA(Rich Internet Applications)Ext JsAndroidLogo文字采撷 (0)
- Design Pattern (5)
- NodeJS&AngularJS (9)
- Python (1)
- Spring boot (0)
- ACM (3)
最新评论
-
心往圣城:
微时代-最专业的微信第三方平台。LBS定位导航,微网站,自定义 ...
微信公众平台 /微信公众平台怎么用 -
zhaojiafan:
return ReverseStr1(str.substrin ...
逆转字符串 Write a String Reverser (and use Recursion!) -
zhaojiafan:
public class StringUtils {
p ...
逆转字符串 Write a String Reverser (and use Recursion!)
树节点组合模型
package cn.com.jsnh.model.catalog;
public class TreeModel {
private String node;
private CatalogModel model;
public String getNode() {
return node;
}
public void setNode(String node) {
this.node = node;
}
public CatalogModel getModel() {
return model;
}
public void setModel(CatalogModel model) {
this.model = model;
}
}
栏目模型【实际的树节点】
package cn.com.jsnh.model.catalog;
public class CatalogModel {
private String id;
private String text;
private Boolean leaf;
private String cls;
private String action;
private String model;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public Boolean getLeaf() {
return leaf;
}
public void setLeaf(Boolean leaf) {
this.leaf = leaf;
}
public String getCls() {
return cls;
}
public void setCls(String cls) {
this.cls = cls;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
}
<%@ page import="java.util.*,
cn.com.jsnh.model.catalog.TreeModel,
cn.com.jsnh.model.catalog.CatalogModel,
net.sf.json.JSONObject,
net.sf.json.JSONArray,
net.sf.ezmorph.bean.MorphDynaBean"
contentType="text/html;charset=utf-8"%>
<%
try{
String node = request.getParameter("node");
System.out.println("node="+node);
List<TreeModel> tree = new ArrayList<TreeModel>();
TreeModel treeModel = new TreeModel();
CatalogModel catalogModel = new CatalogModel();
catalogModel.setId("100000");
catalogModel.setText("个人管理专区");
catalogModel.setLeaf(Boolean.FALSE);
catalogModel.setCls("folder");
catalogModel.setAction("100000");
catalogModel.setModel("100000");
treeModel.setNode("root");
treeModel.setModel(catalogModel);
tree.add(treeModel);
treeModel = new TreeModel();
catalogModel = new CatalogModel();
catalogModel.setId("100001");
catalogModel.setText("修改我的资");
catalogModel.setLeaf(Boolean.TRUE);
catalogModel.setCls("file");
catalogModel.setAction("x.action");
catalogModel.setModel("user");
treeModel.setNode("100000");
treeModel.setModel(catalogModel);
tree.add(treeModel);
treeModel = new TreeModel();
catalogModel = new CatalogModel();
catalogModel.setId("100002");
catalogModel.setText("个人消息");
catalogModel.setLeaf(Boolean.TRUE);
catalogModel.setCls("file");
catalogModel.setAction("x.action");
catalogModel.setModel("message");
treeModel.setNode("100000");
treeModel.setModel(catalogModel);
tree.add(treeModel);
List<CatalogModel> catalogList = new ArrayList<CatalogModel>();
for(TreeModel o:tree){
if(o.getNode().equals(node)){
catalogList.add(o.getModel());
}
}
JSONArray json = JSONArray.fromObject(catalogList);
response.getWriter().write(json.toString());
} catch(Exception ex) {
}
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>后台框架演示</title>
<link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css"/>
<link rel="stylesheet" type="text/css" href="css/common.css"/>
<script type="text/javascript" src="../extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../extjs/ext-all.js"></script>
<script type="text/javascript" src="../extjs/ext-lang-zh_CN.js"></script>
<script type="text/javascript" src="script/common.js"></script>
<script type="text/javascript" src="script/json/json.js"></script>
<script type="text/javascript" src="script/json/json2.js"></script>
</head>
<body>
<script type="text/javascript">
var Tree = Ext.tree;
var root = new Tree.AsyncTreeNode({
text: 'Ext JS',
draggable:false,
id:'root',
children:[{//子节点
text:'loading',//显示文字为loading
iconCls: 'loading',//使用图标为loading 在index.html style 中定义
leaf:true//是叶子节点,不再包含子节点
}]
});
var treeLoader=new Ext.tree.TreeLoader();//指定一个空的TreeLoader
var tree = new Ext.tree.TreePanel({
contentEl:'west',
border:true,
root:root,
region:'west',
id:'west-panel',
split:true,
width: 200,
minSize: 175,
maxSize: 400,
margins:'0 0 0 0',
layout:'accordion',
title:'功能菜单',
collapsible :true,
layoutConfig:{
animate:true
},
rootVisible:true,
autoScroll:true,
loader:treeLoader
});
tree.on('click',treeClick);
//tree.expandAll();
var tab = new Ext.TabPanel({
region:'center',
deferredRender:false,
activeTab:0,
items:[{
contentEl:'center2',
title: '首页',
autoScroll:true
}]
});
function treeClick(node,e) {
if(node.isLeaf()){
e.stopEvent();
var n = tab.getComponent(node.id);
if (!n) {
var n = tab.add({
'id' : node.id,
'title' : node.text,
closable:true,
html : '<iframe scrolling="auto" frameborder="0" width="100%" height="100%" src="index.php?model='+node.attributes.model+'&action='+node.attributes.action+'"></iframe>'
});
}
tab.setActiveTab(n);
}
}
function newTab(id,text,url) {
var n = tab.getComponent(id);
if (!n) {
var n = tab.add({
'id' : id,
'title' : text,
closable:true,
html : '<iframe scrolling="auto" frameborder="0" width="100%" height="100%" src="'+url+'"></iframe>'
});
}
tab.setActiveTab(n);
}
function gettree(node){
if(node.firstChild.text=='loading'){
var par = node.id;
//alert('par='+par);
Ext.Ajax.request({
url: 'jsonTree.jsp',
params: {node:par},
method: 'GET',
success: function(v){ //成功返回
var myData = JSON.parse(v.responseText); // 得到服务器返回的json串,并用json.js解析过对象数组
for(var i=0;i<myData.length;i++ ){
var cnode=new Ext.tree.AsyncTreeNode({
id:myData<i>.id,//id 为服务器返回id 父节点id
text:myData<i>.text,//显示内容为服务器返回id 父节点id
leaf:myData<i>.leaf,//是否为叶子节点,根据服务器返回内容决定是否为叶子节点
children:[{//添加子节点,如果服务器返回tl<i>.leaf为ture则孩子节点将无法显示
text:'loading',
iconCls: 'loading',
leaf:true
}]
});
cnode.on('expand',gettree);//定义当前节点展开时调用gettree方法,再次异步读取子节点
node.appendChild(cnode);//将当前节点添加为待展开节点子节点
}
node.firstChild.remove();//删除当前节点第一个孩子节点(loading节点)
},
failure: function2 // 失败
});
}
}
function function2(){
alert("failure");
}
Ext.onReady(function(){
var viewport = new Ext.Viewport({
layout:'border',
items:[
new Ext.BoxComponent({
region:'north',
el: 'north',
height:35
}),
tree,
tab
]
});
tree.render();
root.on('expand',gettree);//当根节点展开后触发gettree事件
//root.expand();
loadend();
});
function openWindow(id,title,url,width,height){
var win = Ext.get(id)
if (win) {
win.show();
return;
}
win = new Ext.Window({
id:id,
title:title,
layout:'fit',
width:width,
height:height,
closeAction:'close',
collapsible:true,
plain: true,
html : '<iframe frameborder="0" width="100%" height="100%" src="'+url+'"></iframe>'
});
win.show();
}
</script>
<div id="north">
<p class="api-title">MYOIS 1.0 Office Information System</p>
</div>
<div id="west">
</div>
<div id="center2">center2</div>
<div id="loading-mask" style=""></div>
<div id="loading">
<div class="loading-indicator"><img src="images/loading.gif" width="32"
height="32" style="margin-right:8px;" align="absmiddle"/>Loading...
</div>
</div>
</body>
</html>
Link:http://www.zhuoda.org/lunzi/102821.html
相关推荐
"Ext+json+jsp动态加载树"的项目就是一个典型的示例,它展示了如何利用ExtJS框架、JSON数据格式以及JavaServer Pages(JSP)技术来实现一个可动态加载数据的树形视图。下面将详细介绍这些知识点: 1. **ExtJS框架**...
在本文中,SSH框架被用于构建一个后台系统,用于支持前端ExtJS应用的动态树搜索功能。 ExtJS是一个流行的JavaScript库,用于创建富客户端Web应用程序,特别是用于构建数据驱动的用户界面。在描述的场景中,ExtJS被...
ExtJs + Struts2 + JSON 是一种常见的前端与后端数据交互的技术组合,常用于构建富客户端应用。这里我们详细探讨一下这三个技术组件以及它们如何协同工作。 首先,ExtJs 是一个JavaScript库,用于创建复杂的、用户...
例如,Ext.tree.Panel可能会通过Ajax请求从服务器获取JSON格式的树结构数据,然后动态渲染出树形视图。 Ext.tree.Panel是ExtJS中的一个组件,用于展示树状数据结构。它可以显示多级嵌套的节点,支持拖放操作,节点...
EXTJS、Structs和MySQL是三个在Web开发中常见的技术组件,它们共同构成了一个完整的前后端数据交互系统。EXTJS是一种强大的JavaScript库,用于构建富客户端应用;Structs是基于Spring MVC模式的Java Web框架,常用于...
ExtJS + Struts2 + Hibernate + JSON 登录程序是一个典型的Web开发...学习这个程序可以帮助开发者深入理解如何利用ExtJS构建用户界面,如何配置Struts2处理请求和返回JSON数据,以及如何使用Hibernate进行数据库操作。
这个"ext+Json+dwr+spring+hibernate整合项目实例与资源"就是一个典型的案例,它展示了如何将这五个关键技术融合在一起,以实现一个功能强大的前端和后端交互系统。让我们详细探讨这些技术及其整合方式。 1. **...
在本文中,我们将探讨如何结合 ExtJS、JSON 和 Struts2 实现一个动态加载的树形菜单。ExtJS 是一个流行的 JavaScript 框架,用于构建富客户端应用,它支持多种数据源,包括 JSON。Struts2 是一个 Java Web 开发框架...
在这个“extjs+servlet+json简单应用”中,我们将探讨如何将这三个技术结合使用,构建一个简单的Web应用。 首先,我们需要理解ExtJS如何与后端进行通信。ExtJS中的Ajax类提供了与服务器交互的能力,它支持发送GET和...
开发者可以从中学习到如何配置Struts2的Action和Result,如何利用Spring管理Bean,EXTJS如何创建动态UI,以及如何使用JSON进行数据传递。 通过这个实例,开发者能够理解如何将这些技术有效地结合,提升Web应用的...
在标签"json_hibernate extjs json_struts_ext jsp_json_extjs struts2"中,"json_struts_ext"和"jsp_json_extjs"暗示了JSON在Struts2扩展和JSP与ExtJS之间的交互作用。可能有一个配置或者插件用于让Struts2的动作类...
22. extJs 2.0学习笔记(Ext.Panel篇三) 59 23. extJs 2.0学习笔记(Ext.Panel篇四) 62 24. extJs 2.0学习笔记(组件总论篇) 66 25. extJs 2.0学习笔记(Ext.Element API总结) 69 26. extJs 2.0学习笔记(Element.js篇) ...
综上所述,`@@@extjs+struts2+json plugin的例子`是一个综合运用`ExtJS`前端框架、`Struts2`后端框架以及`JSON`数据交换格式的Web应用示例。这样的组合可以构建出高性能、用户体验良好的企业级应用,同时利用`Struts...
标题 "extjs4 + servlet + json + soundmanager2 实现定时刷新报警" 涉及的是一个基于Web的实时报警系统开发技术,其中包含了多个关键组件和技术。让我们逐一深入探讨这些知识点。 1. **EXTJS4**:EXTJS是一个用...
上网找资料,都是一些不全的. struts2+extjs2.1+json+hibernate+spring 自己整合的例子. 当中hibernate数据源可以配置自己的.后台输送json 前台接收.
标题 "extjs 跟 struts+json" 暗示了本文将探讨如何使用ExtJS框架与Struts框架结合,通过JSON数据格式进行交互。ExtJS是一个强大的JavaScript库,用于构建富客户端Web应用程序,而Struts是Java Web开发中的一个MVC...
ExtJS Tree + JSON + Struts2 是一个常见的前端与后端交互技术组合,常用于构建动态的、数据驱动的树形结构界面。在这个项目中,`index.html` 是主页面,`tree.js` 包含了 ExtJS 的树组件相关的 JavaScript 代码,`...
最后,`extjs学习笔记三[Ext+json+jsp构建的动态树].mht`可能涵盖了一个基于EXT JS、JSON和JSP(Java Server Pages)构建动态树的教程。JSP通常用于动态生成HTML页面,而在这个案例中,它可能被用来生成JSON数据,...
通过这个示例,你可以学习到如何将客户端的动态UI(ExtJS Grid)与服务器端的业务逻辑(ASP.NET)无缝连接,以及如何有效地利用JSON作为数据交换格式。这样的技术组合对于构建高效、交互性强的Web应用非常实用。在...
6. **ExtJS**:ExtJS是一个用于构建富客户端Web应用的JavaScript库,它提供了一系列预先封装的组件,如表格、树形结构、图表等,可以帮助开发者快速创建功能丰富的用户界面。ExtJS使用MVC模式,支持数据绑定,且与...