public class TreeNode implements java.io.Serializable {
private Integer id;
private String text;// 树节点名称
private String iconCls;// 前面的小图标样式
private Boolean checked = false;// 是否勾选状态
private Map<String, Object> attributes;// 其他参数
private List<TreeNode> children;// 子节点
private String state = "open";// 是否展开(open,closed)
/**
* @return the id
*/
public Integer getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(Integer id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public Boolean getChecked() {
return checked;
}
public void setChecked(Boolean checked) {
this.checked = checked;
}
public Map<String, Object> getAttributes() {
return attributes;
}
public void setAttributes(Map<String, Object> attributes) {
this.attributes = attributes;
}
public List<TreeNode> getChildren() {
return children;
}
public void setChildren(List<TreeNode> children) {
this.children = children;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getIconCls() {
return iconCls;
}
public void setIconCls(String iconCls) {
this.iconCls = iconCls;
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
<class name="com.acca.entity.Menu" table="t_menu">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="ciconcls"/>
<property name="url"/>
<set name="menus" cascade="all" inverse="true">
<key>
<column name="pid"></column>
</key>
<one-to-many class="com.acca.entity.Menu"/>
</set>
<many-to-one name="menu" class="com.acca.entity.Menu" column="pid"></many-to-one>
</class>
</hibernate-mapping>
private List jsonList = new ArrayList();//action中的属性
/**
* 形成菜单树
*
* @return
* @throws IOException
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public String makeMenuTree() throws IOException {
jsonList=menuService.tree(menu, true);
return SUCCESS;
}
<action name="makeMenuTree" class="menuAction" method="makeMenuTree">
<result type="json">
<param name="root">jsonList</param>
</result>
</action>
public List<TreeNode> tree(Menu menu, Boolean b) {
List<Object> param = new ArrayList<Object>();
String hql = "from Menu m where m.menu is null";
if (menu != null && menu.getId() != null) {
hql = "from Menu m where m.menu.id = ?";
param.add(menu.getId());
}
List<Menu> l = menuDao.find(hql, param);
List<TreeNode> tree = new ArrayList<TreeNode>();
for (Menu t : l) {
tree.add(tree1(t, b));
}
return tree;
}
/**
* 菜单
* @param t
* @param recursive
* @return
*/
@SuppressWarnings("unused")
private TreeNode tree1(Menu t, boolean recursive) {
TreeNode node = new TreeNode();
node.setId(t.getId());
node.setText(t.getName());
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put("url", t.getUrl());
node.setAttributes(attributes);
if (t.getCiconcls() != null) {
node.setIconCls(t.getCiconcls());
} else {
node.setIconCls("");
}
if (t.getMenus() != null && t.getMenus().size() > 0) {
node.setState("closed");
if (recursive) {// 递归查询子节点
List<Menu> l = new ArrayList<Menu>(t.getMenus());
//Collections.sort(l, new MenuComparator());// 排序
List<TreeNode> children = new ArrayList<TreeNode>();
for (Menu r : l) {
TreeNode tn = tree1(r, true);
children.add(tn);
}
node.setChildren(children);
}
}
return node;
}
<script type="text/javascript" src="js/timer.js">
$().ready(function() {
$('#tree').tree({
url:'makeMenuTree.action' ,
lines : true,
onClick : function (node) {
if (node.attributes) {
Open(node.text, node.attributes.url);
}
}
});
</script>
<ul id="tree" class="easyui-tree"></ul>
- 大小: 10 KB
- 大小: 53.4 KB
- 大小: 66.4 KB
分享到:
相关推荐
此函数会遍历所有选中的节点,并将它们的文本合并成一个字符串。 #### 3. 展开和折叠所有节点 在某些场景下,我们可能需要一次性展开或折叠所有的节点。这可以通过调用 `expandAll` 和 `collapseAll` 方法来实现:...
- 使用`Gson`库将`parentList`转换为JSON字符串,并输出到客户端。 #### 3. 递归构建多级菜单 ```java private void createTree(List<Tree> list, int pId) { for (int i = 0; i (); i++) { Map, Object> map = ...
在提供的Java后端代码片段中,我们看到一个名为findBy的方法,这个方法负责查询并返回一个Category对象的列表,然后将其拼接成JSON字符串。在遍历Category对象列表的过程中,对于每一个对象,如果它没有子节点,则将...
// 将节点数据转换为JSON字符串 String jsonString = JSON.toJSONString(nodes); // 设置返回类型为JSON setContentType("application/json;charset=UTF-8"); renderText(jsonString); } } ``` `TreeNode`是...
### 最新jQuery+EasyUI API培训文档 #### Accordion(可折叠标签) **Accordion** 是一个功能组件,允许用户在有限的空间内展示更多的内容。...<ul class="easyui-tree" data-options="url:'treeData.json',...
通过上述后端和前端代码的配合,就可以实现一个基于Jquery EasyUI tree组件的异步加载树,这个树能够根据指定文件夹内的文件和子文件夹动态生成。 总结而言,通过Jquery EasyUI的tree组件,开发者可以方便地构建...
// 拼接JSON字符串 for (TuOafWfnodesTO node : nodes) { jsonstr += "{\"id\":\"" + node.getId() + "\", \"text\":\"" + node.getText() + "\", \"children\":["; // 递归拼接子节点(如果有的话) // ......
3. JSON序列化与反序列化:.NET提供了Json.NET等库,方便将对象转换为JSON字符串,便于前端解析。 4. 安全性:.NET框架提供了身份验证、授权机制,与EasyUI配合可以实现用户登录、权限控制等功能。 四、示例项目...
通过使用Gson,开发者可以轻松地将服务器返回的JSON字符串解析成Java对象,进一步处理和展示在EasyUI Tree上。 “gson-2.3.1.jar”是Gson库的主jar文件,包含了所有用于JSON序列化和反序列化的类和方法。在与EasyUI...
这部分PHP代码中,根据传递的`id`查询数据库中的导航内容,并将结果转换为JSON字符串返回。 默认情况下,树节点是关闭状态,即它们的子节点是隐藏的。如果希望在加载成功后立即展开所有节点,可以使用`...
5. **数据绑定**:EasyUI 支持 JSON 数据格式,可以通过 `data-options` 属性将 JSON 字符串绑定到 HTML 元素上,或者使用 `$(...).datagrid('load', data)` 等方法动态加载数据。 6. **API 方法**:每个组件都有...
- **formatter**:用于格式化日期字符串的函数。 - **parser**:用于解析日期字符串的函数。 ##### 事件 - **onChange**:日期改变时触发。 - **onSelect**:日期被选中时触发。 ##### 方法 - **getValue**:...
与.aspx文件不同,.ashx文件不会返回HTML页面,而是能够直接返回字符串数据或其他格式的内容,因此非常适合用来返回JSON数据。 在使用.ashx文件返回JSON数据时,需要确保服务器端的请求处理程序正确地设置了...
在EasyUI框架中,Combotree是一个非常有用的组件,它结合了下拉列表和树形结构,用于展示具有层级关系的数据。本篇文章将详细介绍如何在EasyUI的Combotree中循环获取父节点直至根节点,并输出所形成的路径。 首先,...
这些方法调用是 EasyUI 提供的扩展,它们以字符串形式指定组件的方法名,使得我们可以直接在 jQuery 对象上调用。 总的来说,jQuery EasyUI 提供了一套丰富的组件和 API,帮助开发者快速构建功能完备的前端界面。在...
主要是将从数据库中查询的数据封装成可以构造树的对象,然后通过递归得到json类型的字符串,然后在页面用easyui进行显示树结构。方法中还有很强的扩展性,可以按照自己的需要进行封装最后得到的数据,进行页面显示
这里,我们根据服务器返回的`access_node`值(以逗号分隔的字符串)来决定哪些复选框应该被预先选中。 然后,我们需要定义一个处理复选框点击事件的函数,例如`set_power_status`,在这里你可以编写实际的操作逻辑...
}2 b9 E( w8 I 59.04 商品分类检索列表 60.05 商品属性检索介绍 61.06 ajax字符串数组传参 62.07 ajax字符串json传参& i' g9 \7 ^! e7 _ 63.08 表单序列化传参 64.09 动态sql的设计方法" o# D. ?# R% _1 X 65.10 ...