public List<SysPower> findAllSysPower() { return this.sysPowerDao.findAllPower(); } public SysPower findById(Integer id) { return this.sysPowerDao.findById(id); } public String getXML() { Document document = DocumentHelper.createDocument(); Element root = document.addElement("tree"); root.addAttribute("id", "0");
List<SysPower> list=this.findAllSysPower(); if (null != list && !list.isEmpty()) { for (SysPower power : list) { if(power.getParentid()==0) { buildParent(root, power); }
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
<package name="sysPower" extends="struts-default" namespace="/system/sysPower">
<action name="findAll" class="com.ruanyu.action.system.SysPowerAction" method="findAllSysPower">
<result>/page/system/role/addRole.jsp</result>
</action>
</package>
</struts>SysPowerAction.java
package com.ruanyu.action.system;import java.util.List;
import java.util.Map;import javax.annotation.Resource;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;
import org.apache.struts2.util.ServletContextAware;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;import com.opensymphony.xwork2.ActionSupport;
import com.ruanyu.beans.system.SysPower;
import com.ruanyu.service.system.SysPowerService;@Controller
@Scope("prototype")
public class SysPowerAction extends ActionSupport implements ServletRequestAware, ServletResponseAware, SessionAware, ServletContextAware{
@Resource(name="sysPowerServiceImpl")
private SysPowerService sysPowerService;
private List<SysPower> list;
private SysPower power;
private HttpServletRequest request;
private Map session;
private ServletContext application;
private HttpServletResponse response; public SysPower getPower() {
return power;
} public void setPower(SysPower power) {
this.power = power;
} public String findAllSysPower() throws Exception {
String xmlString=this.sysPowerService.getXML();
request.setAttribute("xmlString", xmlString);
return SUCCESS;
} public List<SysPower> getList() {
return list;
} public void setList(List<SysPower> list) {
this.list = list;
} public void setServletRequest(HttpServletRequest request) {
this.request=request;
} public void setSession(Map session) {
this.session=session;
} public void setServletContext(ServletContext application) {
this.application=application;
} public void setServletResponse(HttpServletResponse response) {
this.response=response;
}
}
PowerServiceImpl.java
package com.ruanyu.service.system.impl;import java.util.List;import javax.annotation.Resource;import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.tree.DefaultElement;
import org.springframework.stereotype.Service;import com.ruanyu.beans.system.SysPower;
import com.ruanyu.dao.system.SysPowerDao;
import com.ruanyu.service.system.SysPowerService;@Service
public class SysPowerServiceImpl implements SysPowerService{
@Resource(name="sysPowerDaoImpl")
private SysPowerDao sysPowerDao;
public List<SysPower> findAllSysPower() {
return this.sysPowerDao.findAllPower();
} public SysPower findById(Integer id) {
return this.sysPowerDao.findById(id);
} public String getXML() {
Document document = DocumentHelper.createDocument();
Element root = document.addElement("tree");
root.addAttribute("id", "0");
List<SysPower> list=this.findAllSysPower();
if (null != list && !list.isEmpty()) { for (SysPower power : list) {
if(power.getParentid()==0)
{
buildParent(root, power);
}
}
}
return document.asXML();
// StringBuffer sb=new StringBuffer();
// sb.append("<?xml version=\"1.0\" encoding=\"utf-8\">");
// List<SysPower> list=this.findAllSysPower();
// sb.append("<tree id=0>");
// Document document = DocumentHelper.createDocument();
// Ele
// for(SysPower power:list){
// sb.append("<item id="+power.getId()+" parentId="+power.getParentid()+" text="+power.getText()+"/>");
// }
// sb.append("</tree>");
// return sb.toString();
}
private void buildParent(Element element,SysPower power){
//System.out.println("parent...");
Element child =null;
child = element.addElement("item");
child.addAttribute("id", power.getId().toString());
child.addAttribute("text", power.getText());
buildElements(child, power);
} private void buildElements(Element element, SysPower power) {
//System.out.println("childers...");
List<SysPower> children = this.findChildPower(power.getId());
if(null != children && !children.isEmpty()) {
for(SysPower parent : children) {
Element child =null;
child = element.addElement("item");
child.addAttribute("id", parent.getId().toString());
child.addAttribute("text", parent.getText());
buildElements(child, parent);
}
}
} public List<SysPower> findChildPower(Integer parentid) {
return this.sysPowerDao.findChildPower(parentid);
}}
addRole.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="<%=path %>/file/dhtmlxTree/codebase/dhtmlxtree.css" />
<script type="text/javascript" src="<%=path %>/file/dhtmlxTree/codebase/dhtmlxcommon.js"></script>
<script type="text/javascript" src="<%=path %>/file/dhtmlxTree/codebase/dhtmlxtree.js"></script>
<script type="text/javascript" src="<%=path %>/file/dhtmlxTree/codebase/ext/dhtmlxtree_json.js"></script>
<script type="text/javascript" src="<%=path %>/jslib/jquery.js"></script>
<link type="text/css" rel="stylesheet" href="<%=path %>/css/add.css" />
<script type="text/javascript" src="<%=path %>/file/FCKeditor/fckeditor.js"></script>
<script type="text/javascript">
String.prototype._dhx_trim = function(){
return this.replace(/ /g," ").replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,"");
} window.onload=function(){
var oFCKeditor = new FCKeditor('content') ;
oFCKeditor.BasePath ="<%=path%>/file/FCKeditor/";
oFCKeditor.ToolbarSet="myConfig";
oFCKeditor.Height="150px";
oFCKeditor.Width="400px"
oFCKeditor.ReplaceTextarea();
}
function return_page(){
history.back();
}
</script>
</head>
<body>
<div id="xmlString" style="display:none;">
<s:property value="#request.xmlString"/>
</div>
<form action="#" method="post" enctype="multipart/form-data">
<table border="0" cellpadding="0" cellspacing="0" width="730" style="font-size:15px">
<tr>
<td align="right" bgcolor="#FFFFFF">角色名称:</td>
<td><input type="text" />*</td>
</tr>
<tr>
<td align="right" bgcolor="#FFFFFF">角色文档大小:</td>
<td><input type="text"/>*</td>
</tr>
<tr>
<td align="right" bgcolor="#FFFFFF">角色类型:</td>
<td>
<select>
<option>--请选择--</option>
<option>管理员</option>
<option>教师</option>
<option>学生</option>
<option>助理系统管理员</option>
<option>助理课程管理员</option>
</select>
</td>
</tr>
<tr>
<td align="right" bgcolor="#FFFFFF">角色简介:</td>
<td class="nr">
<textarea name="content"></textarea>
</td>
</tr>
<tr>
<td align="right" bgcolor="#FFFFFF">选择权限:</td>
<td>
<div id="treeBox" style="width:400px; height:230px;"></div>
<script>
$(function() {
var tree=new dhtmlXTreeObject("treeBox","100%","100%",0);
tree.setImagePath("<%=path %>/file/dhtmlxTree/codebase/imgs/csh_yellowbooks/");
tree.setSkin("dhx_skyblue");
tree.enableDragAndDrop(false);
<%-- 加复选框 1: 表示带 否则不带 --%>
tree.enableCheckBoxes(1);
<%-- 是否级联选择 true : 级联选择 false: 不级联选择 --%>
tree.enableThreeStateCheckboxes(true);
tree.enableFixedMode(0);
tree.enableTreeLines(true);
var xmlString=document.getElementById("xmlString");
tree.loadXMLString(xmlString.innerText);
tree.openAllItems(0);
});
</script>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" class="h29" value="添加" />
<input type="button" class="h29" value="返回" onclick="return_page();"/></td>
</tr>
</table>
</form>
</body>
</html>