模板代码生成java 程序开发模板

java代码生成器怎么用

zip包,然后自动下载下来

我们提供的服务有:成都做网站、成都网站设计、成都外贸网站建设、微信公众号开发、网站优化、网站认证、费县ssl等。为上1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的费县网站制作公司

1.预先定义好模板

2.界面输入相关参数

3.解析模板生成代码并下载

最后放出源代码:

package com.et.controller.system.createcode;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import com.et.controller.base.BaseController;

import com.et.util.DelAllFile;

import com.et.util.FileDownload;

import com.et.util.FileZip;

import com.et.util.Freemarker;

import com.et.util.PageData;

import com.et.util.PathUtil;

/**

* 类名称:FreemarkerController

* 创建人:Harries

* 创建时间:2015年1月12日

* @version

*/

@Controller

@RequestMapping(value=”/createCode”)

public class CreateCodeController extends BaseController {

/**

* 生成代码

*/

@RequestMapping(value=”/proCode”)

public void proCode(HttpServletResponse response) throws Exception{

PageData pd = new PageData();

pd = this.getPageData();

/* ============================================================================================= */

String packageName = pd.getString(“packageName”); //包名 ========1

String objectName = pd.getString(“objectName”); //类名 ========2

String tabletop = pd.getString(“tabletop”); //表前缀 ========3

tabletop = null == tabletop?””:tabletop.toUpperCase(); //表前缀转大写

String zindext = pd.getString(“zindex”); //属性总数

int zindex = 0;

if(null != zindext !””.equals(zindext)){

zindex = Integer.parseInt(zindext);

}

ListString[] fieldList = new ArrayListString[](); //属性集合 ========4

for(int i=0; i zindex; i++){

fieldList.add(pd.getString(“field”+i).split(“,fh,”)); //属性放到集合里面

}

MapString,Object root = new HashMapString,Object(); //创建数据模型

root.put(“fieldList”, fieldList);

root.put(“packageName”, packageName); //包名

root.put(“objectName”, objectName); //类名

root.put(“objectNameLower”, objectName.toLowerCase()); //类名(全小写)

root.put(“objectNameUpper”, objectName.toUpperCase()); //类名(全大写)

root.put(“tabletop”, tabletop); //表前缀

root.put(“nowDate”, new Date()); //当前日期

DelAllFile.delFolder(PathUtil.getClasspath()+”admin/ftl”); //生成代码前,先清空之前生成的代码

/* ============================================================================================= */

String filePath = “admin/ftl/code/”; //存放路径

String ftlPath = “createCode”; //ftl路径

/*生成controller*/

Freemarker.printFile(“controllerTemplate.ftl”, root, “controller/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName+”Controller.java”, filePath, ftlPath);

/*生成service*/

Freemarker.printFile(“serviceTemplate.ftl”, root, “service/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName+”Service.java”, filePath, ftlPath);

/*生成mybatis xml*/

Freemarker.printFile(“mapperMysqlTemplate.ftl”, root, “mybatis_mysql/”+packageName+”/”+objectName+”Mapper.xml”, filePath, ftlPath);

Freemarker.printFile(“mapperOracleTemplate.ftl”, root, “mybatis_oracle/”+packageName+”/”+objectName+”Mapper.xml”, filePath, ftlPath);

/*生成SQL脚本*/

Freemarker.printFile(“mysql_SQL_Template.ftl”, root, “mysql数据库脚本/”+tabletop+objectName.toUpperCase()+”.sql”, filePath, ftlPath);

Freemarker.printFile(“oracle_SQL_Template.ftl”, root, “oracle数据库脚本/”+tabletop+objectName.toUpperCase()+”.sql”, filePath, ftlPath);

/*生成jsp页面*/

Freemarker.printFile(“jsp_list_Template.ftl”, root, “jsp/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName.toLowerCase()+”_list.jsp”, filePath, ftlPath);

Freemarker.printFile(“jsp_edit_Template.ftl”, root, “jsp/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName.toLowerCase()+”_edit.jsp”, filePath, ftlPath);

/*生成说明文档*/

Freemarker.printFile(“docTemplate.ftl”, root, “说明.doc”, filePath, ftlPath);

//this.print(“oracle_SQL_Template.ftl”, root); 控制台打印

/*生成的全部代码压缩成zip文件*/

FileZip.zip(PathUtil.getClasspath()+”admin/ftl/code”, PathUtil.getClasspath()+”admin/ftl/code.zip”);

/*下载代码*/

FileDownload.fileDownload(response, PathUtil.getClasspath()+”admin/ftl/code.zip”, “code.zip”);

}

}

如何使用Freemarker生成java代码

Freemarker是一个模板框架。我们可以通过Freemarker进行代码生成或页面的静态生成。 现在简单的说一下怎样使用Freemarker Freemarker的主要生成类

public boolean generate(String templateFileName, Map data,

String fileName) {

try {

//取得模板的位置

String templateFileDir=templateFileName.substring(0, templateFileName.lastIndexOf("/"));

//取得模板的名字

String templateFile=templateFileName.substring(templateFileName.lastIndexOf("/"), templateFileName.length());

//取得生成文件的路径

String genFileDir=fileName.substring(0, fileName.lastIndexOf("/"));

Template template = ConfigurationHelper.getConfiguration(templateFileDir).getTemplate(templateFile);

File fileDir=new File(genFileDir);

org.apache.commons.io.FileUtils.forceMkdir(fileDir);

File output = new File(fileName);

if(output.exists()){

//如何代码已存在不重复生成

return false;

}

Writer writer = new FileWriter(output);

template.process(data, writer);

writer.close();

} catch (TemplateException e) {

e.printStackTrace();

return false;

} catch (IOException e) {

e.printStackTrace();

return false;

}

return true;

}

代码中的Map 是模板所需要的数据,我们可以通过面向对像的方法把数据存在模板中public boolean genDaoInterface(String fileName){

DaoModel daoModel=new DaoModel();

//设置Dao实现类的包名

daoModel.setPackageName(DaoConstant.PACKAGE);

//取得接口名

String className=StringUtils.substringBefore(fileName,".");

//设置接口名

daoModel.setClassName(className);

MapString, Object data = new HashMapString, Object();

data.put("model", daoModel);

//设置生成的位置

String filePath=new String("src/"+package2path(DaoConstant.PACKAGE)+"/"+fileName);

//代码生成

return super.generate(DaoConstant.INTERFACE_TEMPLATE, data, filePath);

}

data.put("model", daoModel);由这句代码可看出我们将可以在模板中直接调用这些数据package ${model.packageName};

public interface ${model.className} extends BaseHibernateDao {

}

html代码如何变成javaweb项目

将html格式不能转换成java代码。可以转换成jsp在myeclipse中运行。

1.新建一个Web项目,把准备好的tmp.html粘贴到项目的WebRoot文件夹下

2.用MyEclipse JSP Editor方式打开tmp.html文件,在文件首行添加代码:

%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK" pageEncoding="GBK"%

注:这行指令不能少,language属性,指定JSP页面采用的脚步语言;import属性,可以在JSP文件的脚步片段中引

用外在的类文件;contentType属性,用来对编码格式jinx设置,这里的“GBK”是中文编码

3.保存文件,然后把tmp.html重命名成:tmp.jsp

如何利用SQL中数据使用FreeMarker生成JAVA实体bean代码

利用freemarker生成JAVA BEAN

Freemarker模板代码如下:

package ${packageName};

/**

* #if author == "adams" @author adams /#if

*/

pulic class ${className} {

#list attrs as a

private ${a.type} ${a.field};

/#list

#list attrs as a

public void set${a.field?cap_first}(${a.type} ${a.field}){

this.${a.field} = ${a.field};

}

public ${a.type} get${a.field?cap_first}(){

return this.${a.field};

}

/#list

}

Java代码如下

package com.my.learn.freemarker;

public class Attr{

public String field;

public String type;

public Attr(String field, String type){

this.field = field;

this.type = type;

}

public String getField(){

return this.field;

}

public String getType(){

return this.type;

}

public void setField(String field){

this.field = field;

}

public void setType(String type){

this.type = type;

}

}

package com.my.learn.freemarker;

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

import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException;

public class FmAppUseage {

public static void main(String[] args){

ListObject list = new ArrayListObject();

list.add(new Attr("username", "String"));

list.add(new Attr("password", "String"));

list.add(new Attr("age", "int"));

list.add(new Attr("hobby", "String"));

MapString,Object root = new HashMapString, Object();

root.put("packageName", "com.my.learn.freemarker");

root.put("className", "User");

root.put("attrs", list);

root.put("author", "adams");

Configuration cfg = new Configuration();

String path = FmAppUseage.class.getResource("/").getPath()+"template";

try {

cfg.setDirectoryForTemplateLoading(new File(path));

Template template = cfg.getTemplate("/demo.ftl");

StringWriter out = new StringWriter();

template.process(root, out);

System.out.println(out.toString());

} catch (IOException e) {

System.out.println("Cause==" + e.getCause());

} catch (TemplateException e) {

System.out.println("Cause==" + e.getCause());

}

}

}

输出结果如下:

package com.my.learn.freemarker;

/**

* @author adams

*/

pulic class User {

private String username;

private String password;

private int age;

private String hobby;

public void setUsername(String username){

this.username = username;

}

public String getUsername(){

return this.username;

}

public void setPassword(String password){

this.password = password;

}

public String getPassword(){

return this.password;

}

public void setAge(int age){

this.age = age;

}

public int getAge(){

return this.age;

}

public void setHobby(String hobby){

this.hobby = hobby;

}

public String getHobby(){

return this.hobby;

}

}

当在笔者刚做测试时,将Attr的类定义在了FmAppUseage类的内部,导致不能正常运行,只能将其移除单独成一个类时,便能正常运行了。 转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦

求助,如何将FineReport建立好的表模板转换成java代码大神们帮帮忙

关键的关键是没有必要啊,你做好模板,放到服务器下面,配置好FR自带的Servlet形式的服务器,打开浏览器访问就可以了呀。 查看原帖

求采纳

怎样将java源代码生成java应用程序

用命令提示符来生成应用程序

打开命令提示符,输入javac 源代码文件路径\源代码文件名称.java  或 javac -jar 源代码文件路径\源代码文件名称.jar

然后就可以看见源代码文件的旁边多了一个 源代码文件名称.class  文件 或 源代码文件名称.jar

直接用IDE中的构建选项 NetbeansIDE 和 eclipse都是现在很受欢迎的IDE


分享名称:模板代码生成java 程序开发模板
转载源于:http://ybzwz.com/article/dodesio.html