`
lan13217
  • 浏览: 498226 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

读写文件 mvel 渲染

 
阅读更多
Hello, my name is @{name.toUpperCase()}

print(java.lang.System.getProperty("user.name"));
var FileUtils = Java.type("org.apache.commons.io.FileUtils");
var File = Java.type("java.io.File");
var TemplateRuntime = Java.type("org.mvel2.templates.TemplateRuntime");

function readFileToString(fileName, encoding) {
	var file = new File(fileName);
	return FileUtils.readFileToString(file, encoding);

}
function writeStringToFile(fileName, content, encoding) {
	var file = new File(fileName);
	return FileUtils.writeStringToFile(file, content, encoding);
}
function rendertmpl() {
	var template = readFileToString("a.txt","utf-8");
	var vars = {
		"name" : "Michael",
		"bb" : "Michael"
	};
	var out = TemplateRuntime.eval(template, vars);
	//print(out);
	writeStringToFile("b.txt",out,"utf-8");
}
rendertmpl();


@foreach{tm : tms} 
 - @{tm["tableName"]}
 - @{tm["modelName"]}
   @foreach{cm : tm["cms"]} 
   - @{cm["columnName"]}
   - @{cm["columnClass"]}
   - @{cm["columnComment"]}
   @end{}
@end{}



import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.mvel2.templates.CompiledTemplate;
import org.mvel2.templates.TemplateCompiler;
import org.mvel2.templates.TemplateRuntime;

public class App {
	public static void main(String[] args) {
		String fileName = "a.txt";
		File file = new File(fileName);
		String template = "";
		try {
			template = org.apache.commons.io.FileUtils.readFileToString(file, "utf-8");
		} catch (IOException e) {
			e.printStackTrace();
		}
		Map<String,Object> cm= new HashMap<String, Object>();
		cm.put("columnName", "columnNamev");
		cm.put("columnClass", "columnClassV");
		cm.put("columnComment", "columnCommentV");
		List<Map<String,Object>> cms = new ArrayList<Map<String,Object>>();
		cms.add(cm);

		Map<String, Object> tm = new HashMap<String, Object>();
		tm.put("tableName", "tableNameV");
		tm.put("modelName", "modelNameV");
		tm.put("cms", cms);
		
		Map<String, Object> vars = new HashMap<String, Object>();
		List<Map<String,Object>> tms = new ArrayList<Map<String,Object>>();
		tms.add(tm);
		
		vars.put("tms", tms);

		String output = (String) TemplateRuntime.eval(template, vars);
		System.out.println(output);
		 // compile the template
		CompiledTemplate compiled = TemplateCompiler.compileTemplate(template);
		
		// execute the template
		//String output = (String) TemplateRuntime.execute(compiled, vars);

		System.out.println(java.lang.System.getProperty("java.class.path"));

		/*String fileName = "a.txt";
		File file = new File(fileName);
		String fileContent = "";
		try {
			fileContent = org.apache.commons.io.FileUtils.readFileToString(
					file, "utf-8");
		} catch (IOException e) {
			e.printStackTrace();
		}
		System.out.println("");
		fileContent += "Helloworld";
		try {
			org.apache.commons.io.FileUtils.writeStringToFile(file,
					fileContent, "utf-8");
		} catch (IOException e) {
			e.printStackTrace();
		}
		*/
	}
}



jjs -cp lib\commons-io-2.4.jar;lib\mvel2-2.2.7.Final.jar mvel.js
分享到:
评论

相关推荐

    linux内核中读写文件数据方式详解

    ### Linux内核中读写文件数据方式详解 #### 概述 在Linux内核开发过程中,经常需要在内核环境中读写文件数据,特别是在调试驱动程序时。由于内核环境中无法直接使用标准库,因此必须借助内核提供的特定API来进行...

    VC实现读写文件的三种方法

    下面将详细讲解标题中提到的三种在VC++中实现读写文件的方法。 1. Linux下文件句柄方式 在Linux系统中,文件操作主要通过文件描述符(file descriptor)来完成,它是一个非负整数,表示一个打开的文件。在C或C++中...

    通过can总线实现对U盘拔插的感应以及在U盘中读写文件,并在oled上显示状态

    通过can总线实现对U盘拔插的感应以及在U盘中读写文件,并在oled上显示状态。包括整个工程文件。 U盘读写文件程序\YT32B1_STM32F103_demo.uvproj, 19771 , 2018-04-27 U盘读写文件程序\Basic\adc\adc.c, 4288 , 2018...

    js实现读写文件操作

    js实现的读写文件,文件放在的c:\12.txt里

    Android 读写文件实例

    在Android平台上,对文件进行读写操作是应用程序中常见的需求,比如存储用户数据、缓存信息或者媒体资源。本文将详细讲解如何在Android系统中进行SD卡和内部存储的读写,以及如何获取文件目录。 ### 1. Android权限...

    codesys读写CVS文件(亲测)

    使用st语言读写excel文件,可以读写字符串,详见笔者博客,博客有详细的讲解。 另外需要读取txt文件的关注本人往期的文章,有讲解。资源内部包含工程文件以及CVS文件。 如果是打开工程的界面不显示,可能是codesys的...

    Linux内核中读写文件数据的方法

    在Linux内核编程中,有时候需要直接在内核空间中读写文件,这通常发生在调试驱动程序时。由于内核环境中没有标准C库的支持,必须使用内核提供的特定函数来实现这一目标。以下是对主要涉及的函数的详细解释: 1. **...

    实例70读写文件.rar_写文件_文件读写_读写文件

    在编程领域,文件读写是基础且至关重要的操作。无论是存储数据、日志记录还是程序配置,都需要对文件进行读取或写入。本实例"实例70读写文件.rar"着重介绍了如何在编程中执行文件写入的操作,以及相关的文件读写知识...

    文件读写监控工具文件读写监控工具文件读写监控工具

    文件读写监控工具是计算机系统管理和维护中不可或缺的软件,它们可以帮助用户跟踪、记录和分析系统中的文件操作,包括打开、创建、修改、删除等动作。这类工具在故障排查、性能优化、安全审计等方面有着广泛的应用。...

    异步读写文件测试.rar_异步读写_文件 读写_文件异步读写_文件读写_读写异步

    本文将探讨名为“异步读写文件测试”的程序,它是一个为初学者和开发者量身打造的学习资源,旨在通过测试异步读写速度来探究其优势。 异步读写的核心优势在于其非阻塞的特性。当程序执行读写操作时,通常需要等待...

    Python中使用asyncio 封装文件读写

    ### Python中使用asyncio封装文件读写 #### 引言 在现代软件开发中,特别是在Web后端和服务端开发领域,非阻塞I/O技术变得越来越重要。这主要是因为随着互联网应用规模的增长,服务器需要处理成千上万个并发连接,...

    VisualC 实效编程 81 用CStdioFile读写文件

    VisualC 实效编程 81 用CStdioFile读写文件VisualC 实效编程 81 用CStdioFile读写文件VisualC 实效编程 81 用CStdioFile读写文件VisualC 实效编程 81 用CStdioFile读写文件VisualC 实效编程 81 用CStdioFile读写文件...

    android读写xml文件

    android中读写xml文件简单demo,可以通过此代码来简单的读取xml配置文件

    Qt之读写ini文件

    在Qt框架中,读写`.ini`配置文件是常见的任务,尤其在开发桌面应用程序时,这些文件用于存储用户的个性化设置或应用的配置信息。本文将详细介绍如何使用Qt库中的`QSettings`类来处理`.ini`文件,以及解决中文字符串...

    C#一个读写文件的类

    用于读写文件的类,比较方便!

    大文件读写内存映射.rar

    本主题聚焦于Qt框架下如何利用内存映射进行大文件的读写操作。Qt是一个跨平台的C++库,提供了丰富的功能,包括图形用户界面、网络编程、数据库访问等,同时也支持内存映射技术。 内存映射允许将大文件的部分或全部...

    用CFile类简单读写文件

    `CFile`类是MFC(Microsoft Foundation Classes)库提供的一种方便的文件操作接口,它封装了标准C++的`fstream`类,使得文件的读写操作更为简洁。本文将详细探讨如何使用`CFile`类进行简单的文件读写操作。 首先,...

    Android读写配置文件

    在Android开发中,读写配置文件是常见的任务,主要用于存储应用程序的设置、用户偏好或者其他持久化数据。配置文件通常以XML或JSON格式存在,因为它们结构清晰,易于解析。本实例将详细介绍如何在Android中进行读取...

    DBF读写文件 C++

    本文将深入探讨如何使用C++语言进行DBF文件的读写操作,以及如何实现单个和多个字段的查找功能。我们将基于提供的"DBF读写文件 C++ 查找"这一主题,通过分析描述中的"一次查找一个"和"一次查找多个"功能,来讲解相关...

    C++动态链接库读写文件

    本主题将深入探讨如何在C++中创建和使用DLL来实现文件的读写操作。 首先,我们需要理解C++中的文件I/O(输入/输出)基础。在C++中,文件操作主要通过`fstream`库来实现,包括`ifstream`(用于读取)、`ofstream`...

Global site tag (gtag.js) - Google Analytics