⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.java

📁 Eclipse代码生成器,支持Eclipse3.3 WTP版本,该项目实现了Spring + hibernate + webService + struts 框架文件的自动生成,有这方面需求的个人公司
💻 JAVA
字号:
package com.newegg.test;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.wst.ws.internal.common.BundleUtils;

import com.newegg.eclipse.soaw.facet.codegen.ui.plugin.CodeGenPlugin;

import freemarker.cache.ClassTemplateLoader;
import freemarker.cache.FileTemplateLoader;
import freemarker.cache.MultiTemplateLoader;
import freemarker.cache.TemplateLoader;
import freemarker.core.Environment;
import freemarker.core.LibraryLoad;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.ObjectWrapper;
import freemarker.template.SimpleHash;
import freemarker.template.Template;
import freemarker.template.TemplateHashModel;
import freemarker.template.TemplateMethodModel;
import freemarker.template.TemplateModelException;

public class Test
{
	public static void main(String[] args) throws Exception
	{

		Configuration cfg = new Configuration();
		// Specify the data source where the template files come from.
		// Here I set a file directory for it:
		// IPath templatePath =
		// BundleUtils.getJarredPluginPath(CodeGenPlugin.PLUGIN_ID).append("template/test/");

		FileTemplateLoader ftl1 = new FileTemplateLoader(new File("template/test/"));
		FileTemplateLoader ftl2 = new FileTemplateLoader(new File("template/common"));
		FileTemplateLoader ftl3 = new FileTemplateLoader(new File("template/"));
		ClassTemplateLoader ctl = new ClassTemplateLoader(Test.class, "");
		TemplateLoader[] loaders = new TemplateLoader[]
		{ ftl1, ftl2, ftl3, ctl };
		MultiTemplateLoader mtl = new MultiTemplateLoader(loaders);
		cfg.setTemplateLoader(mtl);

		// cfg.setDirectoryForTemplateLoading(new File("template/test/"));

		// Specify how templates will see the data model. This is an advanced topic...
		// but just use this:

		cfg.setObjectWrapper(new DefaultObjectWrapper());

		// cfg.setObjectWrapper(ObjectWrapper.BEANS_WRAPPER);

		cfg.setTemplateExceptionHandler(new MyTemplateExceptionHandler());
		// cfg.setSharedVariable("shareVar", new ShareVar("shareName1", "shareName2"));
		// Create the root hash
		SimpleHash root = new SimpleHash();

		root.put("doc", freemarker.ext.dom.NodeModel.parse(new File("test/com/newegg/test/xml/theXml.xml")));
		// Environment e = Environment.getCurrentEnvironment();
		// TemplateHashModel thm = e.getDataModel();

		// Put string ``user'' into the root
		// root.put("user", "Big Joe");
		// // Create the hash for ``latestProduct''
		// Map latest = new HashMap();
		// // and put it into the root
		// root.put("latestProduct", latest);
		// root.put("shareVar", new ShareVar("shareName1", "shareName2"));
		// // put ``url'' and ``name'' into latest
		// latest.put("url", "products/greenmouse.html");
		// latest.put("name", "green mouse");

		// expose a "simple" java objects:
		root.put("theString", "wombat");
		// expose an "arbitrary" java objects:
		/**
		 * 下面两个方法是一样的,后者的变量是全局的
		 */
		// root.put("theObject", new TestObject("green mouse", 1200));
		cfg.setSharedVariable("theObject", new TestObject("green mouse", 1200));// 它是非线程安全的

		root.put("indexOf", new IndexOfMethod());

		root.put("upperCase", new UpperCaseTransform());

		List childList = new ArrayList();
		for (int i = 0; i < 20; i++)
		{
			childList.add("name" + i + ":" + i);
		}
		root.put("childList", childList);

		Template temp = cfg.getTemplate("test.ftl");
		// System.out.println(temp.toString());
		Writer out = new OutputStreamWriter(System.out);
		// InputStream in = new BufferedInputStream(new FileInputStream(out));
		temp.process(root, out);
		out.flush();

		// String outputCharset = "UTF-8";
		// Writer w = new OutputStreamWriter(out, outputCharset);
		// Environment env = temp.createProcessingEnvironment(new IndexOfMethod(), w);
		// env.setOutputEncoding(outputCharset);
		// env.process();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -