我现在grails+groovy,用Groovy 生成 Flex tree 功能树需要的XML文件,里面用到了递归,可以无限级。下现有二个类:一个是对象TabFunction,这就是我的功能表影射出的对象,Test3是生成XML的测试类。(附件中有:groovy语方法文档。)
package ce.bean
class TabFunction {
String cCode;
String cName;
String cDescription;
String cParentCode;
Date dCreate=new Date();
String cState;
String cGrade
static mapping ={
version false;
}
static constraints = {
}
}
package com
import groovy.xml.StreamingMarkupBuilder
import ce.bean.TabFunction
/**
* Created by IntelliJ IDEA.
* User: mxl
* Date: 2010-3-16
* Time: 15:58:22
* To change this template use File | Settings | File Templates.
*/
class Test3 {
def str="<funlist></funlist>";
def void roolMothed(){
def obj= new TabFunction(cCode:"TOP_SysUserManager",cName:"基础信息维护",cDescription:"系统注册信息管理",cState:"0",cGrade:1,cParentCode:"00");
obj.id=2;
def obj1= new TabFunction(cCode:"SYS_UserManager",cName:"用户信息管理",cDescription:"系统注册用户管理",cState:"0",cGrade:2,cParentCode:"TOP_SysUserManager");
obj1.id=1;
def obj2= new TabFunction(cCode:"TOP_SystemManager",cName:"系统信息维护",cDescription:"系统注册信息管理",cState:"0",cGrade:1,cParentCode:"00");
obj2.id=3;
def obj3= new TabFunction(cCode:"fff",cName:"系统信息维护",cDescription:"系统注册信息管理",cState:"0",cGrade:3,cParentCode:"SYS_UserManager");
obj3.id=5;
List list=new ArrayList();
list<<obj1<<obj<<obj2<<obj3;
println "LAST:::"+ testMethod(list,list,"00",str)
}
def String testMethod(all,list,parentCode,str){
def temp = all.findAll {it.@cParentCode==parentCode};
def root = new XmlSlurper().parseText(str) ;
def outputBuilder = new StreamingMarkupBuilder()
def tempList=new ArrayList();
String result="";
if(parentCode.length()>0){
temp.each {
def tempFun=it;
//def obj=root.sysfun.find {it.@cCode == parentCode };
root.appendNode{
sysfun(cCode:tempFun.cCode,cName:tempFun.cName);
}
def ll= all.findAll {it.@cParentCode==tempFun.cCode}
if (ll.size()>0) ll.each{ tempList<<it};
}
}else{
list.each {
def tempFun=it;
// println tempFun.cParentCode+":::::"+tempFun.cCode;
def obj=root.'**'.find{it.@cCode==tempFun.cParentCode};
obj.appendNode{
sysfun(cCode:tempFun.cCode,cName:tempFun.cName);
}
def ll= all.findAll {it.@cParentCode==tempFun.cCode}
if (ll.size()>0) ll.each{ tempList<<it};
}
}
result = outputBuilder.bind{ mkp.yield root }
if(tempList.size()>0)
testMethod(all,tempList,"",result);
else{
return result;
}
}
public static void main(def a){
new Test3().roolMothed();
}
}
分享到:
相关推荐
Groovy实用程序,可与WordPress XML-RPC API进行交互。 它涵盖了描述的所有服务。 请参阅测试包以作为用法参考。 去做 该库主要是用于将旧站点迁移到Wordpress的,因此某些API尚未经过很好的测试,但仍在进行中。 ...
这些工具伴随着Java一起出现,在各自辉煌之后还在一直使用。 Apache Ant:基于XML的构建...Gradle:使用Groovy(非XML)进行增量构建,可以很好地与Maven依赖管理配合工作。 字节码操作 编程方式操作字节码的开发库。
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
模式生成schema-gen是一种多语言,可互操作的XML Schema代码生成器。 生成的代码允许以两种最广泛使用的行业格式(XML和JSON)读取,写入,操作和传输数据。 当前支持的语言是Java 8,Kotlin 1,Swift 4和Dart 2.1。...
18.2.3 修改web.xml 224 18.2.4 添加动态方法 226 18.2.5 捕获变更 227 18.3 插件的依赖关系 229 18.4 在安装或升级时执行附加操作 230 18.5 本章小结 230 第19章 浅析Grails的源程序 231 19.1 准备工作 231 19.1.1...
xml java系统源码 Java Trader交易框架文档 简介 java-trader项目目标是成为一个基于Java的开源期货交易框架, 有这些特点: 分布式管理界面, 支持交易服务的集中管理 基于纯Java的行情和交易接口, 内建支持JCTP, 支持...
该工具支持Java、Scala和Groovy三种语言,并且可以用于测试环境,需要在maven的pom.xml文件中添加对应的依赖。 在实际使用中,Awaitility提供了非常灵活的等待条件设置。例如,你可以通过调用`await().until...
Apache JMeter 可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、...函数可用于为测试提供动态输入或提供数据操作。 通过适用于 Maven、Gradle 和 Jenkins 的第3方开源库轻松实现持续集成。
Apache JMeter (apache-jmeter-5.4.3.zip)可用于测试静态和动态资源、Web 动态应用程序的...函数可用于为测试提供动态输入或提供数据操作。 通过适用于 Maven、Gradle 和 Jenkins 的第3方开源库轻松实现持续集成。
Apache JMeter (apache-jmeter-5.4.3.tgz)可用于测试静态和动态资源、Web 动态应用程序的...函数可用于为测试提供动态输入或提供数据操作。 通过适用于 Maven、Gradle 和 Jenkins 的第3方开源库轻松实现持续集成。
Apache JMeter 源码(apache-jmeter-5.4.3_src.zip)可用于测试静态和动态资源、Web 动态应用...函数可用于为测试提供动态输入或提供数据操作。 通过适用于 Maven、Gradle 和 Jenkins 的第3方开源库轻松实现持续集成。
Apache JMeter 源码(apache-jmeter-5.4.3_src.tgz)可用于测试静态和动态资源、Web 动态应用...函数可用于为测试提供动态输入或提供数据操作。 通过适用于 Maven、Gradle 和 Jenkins 的第3方开源库轻松实现持续集成。
compositor是一款非常方便的编程软件,不仅具有便捷的操作方式更有丰富的功能以及全新的编程模式选择带来...你描述你的UI,然后写一个应用程序来处理UI输入,描述符是XML,应用程序是一个Java/Groovy/Scala/Kotlin类
Maven权威指南 Authors Tim O'Brien (Sonatype, Inc.) , John Casey (Sonatype, Inc.) , Brian Fox (Sonatype, Inc.) , Bruce Snyder () , Jason Van Zyl (Sonatype, Inc.) , Juven Xu () Abstract ...
不使用。 该插件仍在开发中。...豆子您可以使用配置文件grails-app/conf/DroolsConfig.groovy或 xml 文件grails-app/conf/drools-context.xml来定义 bean。 这将允许您执行以下操作: class SomeService { def pack
英国剑桥大学癌症研究所(CRUK-CI)的Genologics Java客户端为Java或Groovy开发人员提供了一种使用对象而不是XML或DOM文档树来使用方法。 它提供了一个接口来执行(几乎)Genologics REST API支持的所有操作,包括...
基于Groovy的领域特定语言(DSL),用于描述和操作构建过程 支持maven/lvy的依赖管理 非常灵活,并不强迫用户一定要使用最佳的构建方式 插件可以暴露自身的语言和接口api给构建文件使用 支持IDE集成 2.2 需求...
jasperreports-3.5.3-applet.jar jasperreports-3.5.3-javaflow.jar groovy-all-1.5.5.jar JasperReport报表 fckeditor-java-core-2.6.jar imageinfo-1.9.jar serializer.jar fckeditor在进行文字编辑时,使用的仍...
SublimeText2支持但不限于 C, C++, C#, CSS, D, Erlang, HTML, Groovy, Haskell, HTML, Java, JavaScript, LaTeX, Lisp, Lua, Markdown, Matlab, OCaml, Perl, PHP, Python, R, Ruby, SQL, TCL, Textile and XML 等...