`
dtt3401885
  • 浏览: 17887 次
文章分类
社区版块
存档分类
最新评论

grails树形结构图

 
阅读更多
用到的插件式 dhtmlx,  xml为
<?xml version='1.0' encoding='iso-8859-1'?>
          <tree id="0">
              <item text="My Computer" id="1" child="1" im0="my_cmp.gif" im1="my_cmp.gif" im2="my_cmp.gif" call="true" select="yes">
                  <userdata name="system">true</userdata>
                  <item text="Floppy (A:)" id="11" child="0" im0="flop.gif" im1="flop.gif" im2="flop.gif"/>
                  <item text="Local Disk (C:)" id="12" child="0" im0="drv.gif" im1="drv.gif" im2="drv.gif"/>
              </item>
              <item text="Recycle Bin" id="4" child="0" im0="recyc.gif" im1="recyc.gif" im2="recyc.gif"/>
      </tree>
controller中代码为:
def KnowledgeTree = {
StringBuffer sb = new StringBuffer();
response.setCharacterEncoding("UTF-8")
response.setContentType("text/xml");
def loginUser =UtilsController.getLoginUser(session)
if(loginUser){
def c=KnowledgeType.createCriteria()
def myKnowledge=c.list(){

and{
isNull("parent")

}
order("dateCreated","desc")
}
try{
sb.append(treeXML(myKnowledge))
}catch (Exception e) {
e.printStackTrace()
}
}else{
sb.append(nologinTreeXML ())
}
render sb.toString()
}
def knowledgeType_tree={

}//建页面时建立knowledgeType_tree。从这个页面调用def knowledgeType_listTree这个方法
def knowledgeType_listTree = {

StringBuffer sb = new StringBuffer();
response.setCharacterEncoding("UTF-8")
response.setContentType("text/xml");
def loginUser = UtilsController.getLoginUser(session)
if(loginUser){
def c=KnowledgeType.createCriteria()
def myKnowledge=c.list(){

and{
isNull("parent")

}
order("dateCreated","desc")
}

try{
sb.append(treeXML (myKnowledge))
}catch (Exception e) {
e.printStackTrace()
}
}else{
sb.append(nologinTreeXML ())
}
render sb.toString()
}
private String treeXML (def knowledgeType) {
response.setCharacterEncoding("UTF-8")
response.setContentType("text/xml");
StringBuffer sb = new StringBuffer();
sb.append("<?xml version='1.0' encoding='UTF-8'?>")
sb.append('<tree id="0">')
try{
for(KnowledgeType ud:knowledgeType){
sb.append(makeKnowledgeTreeXML(ud))
}
}catch (Exception e) {
e.printStackTrace()
}
sb.append('</tree>')
return sb.toString()
}
private String nologinTreeXML () {
response.setCharacterEncoding("UTF-8")
response.setContentType("text/xml");
StringBuffer sb = new StringBuffer();
sb.append("<?xml version='1.0' encoding='UTF-8'?>")
sb.append('<tree id="0">')
sb.append("<item text='\u4F60\u767B\u5F55\u5DF2\u7ECF\u8D85\u65F6!' id='no_login' aCol='red' />")
sb.append('</tree>')
return sb.toString()
}
private String makeKnowledgeTreeXML(KnowledgeType department){
def result = ""
if(department.childrens){
result='<item text="' + department.sortname + '" id="' + department.id + '" im0="folderClosed.gif" >'
def c=KnowledgeType.createCriteria()
def children=c.list(){
eq("parent", department)
order("dateCreated","desc")
}
for(KnowledgeType ud:children){
if(ud!=department){
result+=makeKnowledgeTreeXML(ud);
}
}
result+='</item>'
}else{
if(!department.parent&&!department.childrens){
result='<item text="' + department.sortname + '" id="' + department.id + '" im0="folderClosed.gif" ></item>'
}else{

result += '<item text="' + department.sortname  + '" id="' + department.id + '" />'
}
}
return result;
}
}



gsp页面:tree.loadXML("${request.getContextPath()}/knowledgeType/knowledgeType_listTree?"+ new Date().valueOf());
分享到:
评论

相关推荐

    Grails Grails Grails

    2. **视图(View)**: 视图负责展示数据,通常使用GSP(Grails Server Pages)技术,这是一种结合了HTML和Groovy的模板语言,可以嵌入Groovy表达式和控制结构,实现动态内容的生成。 3. **控制器(Controller)**: ...

    Eclipse下搭建Grails项目

    在Eclipse中,Grails项目的结构和管理将得到很好的支持,包括源代码编辑、构建、测试和调试。 注意,尽管Eclipse对Grails的支持相比IntelliJ IDEA和NetBeans可能稍显不足,但通过Groovy Eclipse插件的配置,开发者...

    Grails权威指南 Grails权威指南

    《Grails权威指南》是一本全面深入探讨Grails框架的专著,旨在帮助读者掌握这一强大的Web开发工具。Grails是一种基于Groovy语言的开源框架,它为构建现代、高效的应用程序提供了简洁高效的解决方案。本指南针对不同...

    grails-用户手册

    Grails的核心理念是“约定优于配置”,这意味着它有一套默认的规则和结构,减少了开发者在项目初始化阶段的工作量。例如,项目文件结构、数据库映射、URL映射等都有预设的约定。 二、MVC架构 1. Model:模型层负责...

    eclipse开发grails插件

    选择合适的Grails版本和其他配置,然后Eclipse会自动生成项目结构。 5. **开发与调试**:在Eclipse中,你可以直接编辑Grails的源代码,使用内置的Groovy编辑器进行语法高亮和代码提示。通过右键点击项目,选择"Run ...

    grails快速开发web

    - **脚手架支持**:提供了一套快速原型开发工具,可以自动生成基本的应用程序结构。 - **插件系统**:拥有丰富的插件生态系统,可以通过安装插件扩展 Grails 的功能。 #### 三、Grails 的配置文件位置 在 Grails ...

    Grails入门指南 -- 针对grails1.0.4更新

    - **自定义数据表**:扩展Grails默认的数据表结构,满足复杂业务需求。 - **遗留数据处理**:在已有数据表基础上进行Grails应用开发的方法。 - **ORM问题解决**:针对对象关系映射中遇到的问题提出解决方案。 - ...

    Grails模块架构图.JPG

    Grails模块架构图

    grails中文入门简介

    Grails提供了一个默认的"Hello World"示例,帮助新手快速理解框架的基本结构。 Grails框架的配置通常通过内置选项和外部文件来完成。例如,数据源的配置既可以在环境配置中直接设置,也可以通过JNDI数据源来管理。...

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    1. 学习入口:对于中文开发者来说,中文文档降低了学习Grails的门槛,帮助理解和掌握Grails的基本概念、框架结构、开发工具以及最佳实践。 2. 快速上手:文档通常包含安装指南、教程、API参考等,为开发者提供从零...

    使用 Grails 快速开发 Web 应用程序

    目录结构包括`grails-app/conf`存储配置文件,`grails-app/controllers`存放控制器,`grails-app/domain`包含领域类,`grails-app/services`用于业务逻辑,`grails-app/views`是视图文件等。 在了解了Grails的基本...

    grails中文参考手册

    - **创建一个Grails应用**:使用`grails create-app`命令可以快速创建一个新的Grails应用,这将生成基本的项目结构。 - **Hello World示例**:在新创建的应用中,你可以通过创建一个简单的控制器和视图来实现经典...

    eclipse插件grails(groovy)

    Eclipse会自动为你的项目生成基本的Grails结构,包括`grails-app`目录,其中包含了`controllers`, `domains`, `services`, `views`等子目录。 在Grails项目中,控制器(Controllers)负责处理HTTP请求,领域类...

    Grails中文参考手册

    在 Grails 中,MVC 模式用于组织应用程序的结构。Model 负责业务逻辑和数据管理,View 负责显示用户界面,Controller 处理用户请求并协调 Model 和 View 的交互。 **GORM (Grails Object-Relational Mapping)** ...

    grails login

    这将在指定目录下生成一个完整的Grails项目结构。 **3. 数据库配置** Grails默认使用H2内存数据库,如需使用MySQL,需修改`Config.groovy`中的数据库配置。添加如下代码: ```groovy dataSource { pooled = true ...

    grails开发

    3. **Grails应用程序结构** - **Controllers**:控制器处理HTTP请求,调用服务层方法,准备数据并转发到视图层。 - **Models**:模型代表应用程序的数据,通常与数据库交互,使用Hibernate进行对象关系映射。 - *...

    Grails权威指南 中文版

    紧接着,书中详细讨论了Grails的项目结构,以及如何基于领域模型自动创建Web程序,从而实现快速的原型开发。 在开发过程中,单元测试和功能测试是保证应用质量的重要环节。本书也探讨了在Grails中实现这两种测试的...

    grails-core源码

    在解压后的`grails-core-master`目录中,我们可以看到Grails的核心模块组织结构。通常,一个开源项目的源码结构反映了它的设计思路和功能划分。`src/main/groovy`包含了主要的源代码,`src/test/groovy`用于存放测试...

    grails-2.4.4.zip

    《Grails 2.4.4 框架深度解析》 Grails 2.4.4 是一个基于Java的开源Web应用框架,它利用Groovy语言的强大特性,为开发者提供了一种高效、灵活的开发环境。这个压缩包“grails-2.4.4.zip”包含了完整的Grails 2.4.4...

Global site tag (gtag.js) - Google Analytics