HTMLc语言代码问题,我的代码如下:

Java进阶之 如何自动生成代码
一、前言:为什么要有代码的自动生成?
对于这个问题 最简洁直接的回答就是:代替手动编写代码、提高工作效率。
什么样的场景和代码适合用自动生成这种方式呢?
做过服务端的朋友一定都知道代码中我们需要编写与表映射的Java实体类(Entity)、需要编写与实体对应的DAO类(XxDao.java类中有包含对应实体的增、删、改、查基本操作)。在这些实体类中通常都是一些属性方法以及属性对应的get/set方法、而实体对应的DAO类中也基本会包含有增、删、改、查这些与数据库操作相关的方法。在编写了那么多的实体类和Dao类的过程中 你是否发现了这些代码中有很多地方都相似或者差不多、只是名字不同而已呢?对、那么这个时候其实我们可以定义一个模板、通过模板我们来让代码自动生成去吧。
二、FreeMarker的简单介绍
在进入正文前,让我们首先简单、快速了解一下FreeMarker。
(做过Web开发的朋友肯定都是相当熟悉的、小吕当时 也是在做Web开发的时候第一次接触了FreeMarker)
1、概述:FreeMarker是一款模板引擎:即一种基于模板、用来生成输出文本的通用工具。更多的是被用来设计生成HTML页面。
简单说就是:FreeMarker是使用模板生成文本页面来呈现已经准备好的数据。如下图表述
FreeMarker官网:http://freemarker.org/
2、通过一个简单的例子来展示如何使用FreeMarker定义模板、绑定模型数据、生成最终显示的Html页面:
1&.新建项目 在项目根目录下新建template文件夹,用来存放我们的Template file,
如我们新建模板文件test.ftl 内容如下:
Welcome ${user}&#if user == Big Joe&, our beloved leader!
Our latest product: !
2&.项目引入freemarker.jar(下载地址:/freemarker.html),
在Java类中使用FreeMarker API方法引用模板文件、创建数据模型、合并数据模型与模板文件最终输入,
代码如下:
import java.io.F
import java.io.IOE
import java.io.OutputStreamW
import java.io.W
import java.util.HashM
import java.util.M
import freemarker.template.C
import freemarker.template.DefaultObjectW
import freemarker.template.T
import freemarker.template.TemplateE
public class HtmlGeneratorClient {
public static void main(String[] args) {
Configuration cfg = new Configuration();
// 指定模板文件从何处加载的数据源,这里设置成一个文件目录
cfg.setDirectoryForTemplateLoading(new File(./template));
cfg.setObjectWrapper(new DefaultObjectWrapper());
// 获取或创建模板
Template template = cfg.getTemplate(test.ftl);
// 创建数据模型
Map root = new HashMap();
root.put(user, Big Joe);
Map latest = new HashMap();
root.put(latestProduct, latest);
latest.put(url, http://blog.csdn.net/janice0529/article/details/products/greenmouse.html);
latest.put(name, green mouse);
// 将模板和数据模型合并 输出到Console
Writer out = new OutputStreamWriter(System.out);
template.process(root, out);
out.flush();
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
3&.最终生成的HTML的页面代码如下:
Welcome Big Joe, our beloved leader!
Our latest product: !
三、如何使用FreeMerker完成Java类代码的自动生成
上面示例 我们的ftl模板文件定义的是HTML页面模板,那么我们将ftl模板定义为Java代码呢 通过数据模板的绑定不就可以生成Java类啦,
下面小吕将利用模板来自动创建实体对象的java类(编写实体类的模板文件相对逻辑简单,但简单归简单,最重要的还是我们要掌握它的思想)
1、属性类型的枚举类 PropertyType.java
* 属性类型枚举类
public enum PropertyType {
Byte, Short, Int, Long, Boolean, Float, Double, String, ByteArray, Date
2、实体对应的字段属性类 Property.java
* 实体对应的属性类
public class Property {
// 属性数据类型
private String javaT
// 属性名称
private String propertyN
private PropertyType propertyT
public String getJavaType() {
return javaT
public void setJavaType(String javaType) {
this.javaType = javaT
public String getPropertyName() {
return propertyN
public void setPropertyName(String propertyName) {
this.propertyName = propertyN
public PropertyType getPropertyType() {
return propertyT
public void setPropertyType(PropertyType propertyType) {
this.propertyType = propertyT
3、实体模型类 Entity.java
import java.util.L
public class Entity {
// 实体所在的包名
private String javaP
// 实体类名
private String classN
// 属性集合
// 是否有构造函数
public String getJavaPackage() {
return javaP
public void setJavaPackage(String javaPackage) {
this.javaPackage = javaP
public String getClassName() {
return classN
public void setClassName(String className) {
this.className = classN
public String getSuperclass() {
public void setSuperclass(String superclass) {
this.superclass =
public List getProperties() {
public void setProperties(List properties) {
this.properties =
public boolean isConstructors() {
public void setConstructors(boolean constructors) {
this.constructors =
4、在项目根目录下新建template文件夹,用来存放我们的Template file, 新建实体模板entity.ftl 内容如下:
package ${entity.javaPackage};
* This code is generated by FreeMarker
* @author lvzb.
public class ${entity.className}&#if entity.superclass?has_content& extends ${entity.superclass}
/********** attribute ***********/
&#list entity.properties as property&
private ${property.javaType} ${property.propertyName};
/********** constructors ***********/
&#if entity.constructors&
public ${entity.className}() {
public ${entity.className}(&#list entity.properties as property&${property.javaType} ${property.propertyName}&#if property_has_next&, ) {
&#list entity.properties as property&
this.${property.propertyName} = ${property.propertyName};
/********** get/set ***********/
&#list entity.properties as property&
public ${property.javaType} get${property.propertyName?cap_first}() {
return ${property.propertyName};
public void set${property.propertyName?cap_first}(${property.javaType} ${property.propertyName}) {
this.${property.propertyName} = ${property.propertyName};
5、自动生成实体类 客户端代码 EntityGeneratorClient.java
import java.io.F
import java.io.FileW
import java.io.IOE
import java.io.OutputStreamW
import java.io.W
import java.util.ArrayL
import java.util.HashM
import java.util.L
import java.util.M
import freemarker.template.C
import freemarker.template.DefaultObjectW
import freemarker.template.T
import freemarker.template.TemplateE
* 自动生成实体类客户端
* @author lvzb.
public class EntityGeneratorClient {
private static File javaFile =
public static void main(String[] args) {
Configuration cfg = new Configuration();
// 步骤一:指定 模板文件从何处加载的数据源,这里设置一个文件目录
cfg.setDirectoryForTemplateLoading(new File(./template));
cfg.setObjectWrapper(new DefaultObjectWrapper());
// 步骤二:获取 模板文件
Template template = cfg.getTemplate(entity.ftl);
// 步骤三:创建 数据模型
Map root = createDataModel();
// 步骤四:合并 模板 和 数据模型
// 创建.java类文件
if(javaFile != null){
Writer javaWriter = new FileWriter(javaFile);
template.process(root, javaWriter);
javaWriter.flush();
System.out.println(文件生成路径: + javaFile.getCanonicalPath());
javaWriter.close();
// 输出到Console控制台
Writer out = new OutputStreamWriter(System.out);
template.process(root, out);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
* 创建数据模型
private static Map createDataModel() {
Map root = new HashMap();
Entity user = new Entity();
user.setJavaPackage(com.study.entity); // 创建包名
user.setClassName(User);
// 创建类名
user.setConstructors(true); // 是否创建构造函数
// user.setSuperclass(person);
List propertyList = new ArrayList();
// 创建实体属性一
Property attribute1 = new Property();
attribute1.setJavaType(String);
attribute1.setPropertyName(name);
attribute1.setPropertyType(PropertyType.String);
// 创建实体属性二
Property attribute2 = new Property();
attribute2.setJavaType(int);
attribute2.setPropertyName(age);
attribute2.setPropertyType(PropertyType.Int);
propertyList.add(attribute1);
propertyList.add(attribute2);
// 将属性集合添加到实体对象中
user.setProperties(propertyList);
// 创建.java类文件
File outDirFile = new File(./src-template);
if(!outDirFile.exists()){
outDirFile.mkdir();
javaFile = toJavaFilename(outDirFile, user.getJavaPackage(), user.getClassName());
root.put(entity, user);
* 创建.java文件所在路径 和 返回.java文件File对象
* @param outDirFile 生成文件路径
* @param javaPackage java包名
* @param javaClassName java类名
private static File toJavaFilename(File outDirFile, String javaPackage, String javaClassName) {
String packageSubPath = javaPackage.replace('.', '/');
File packagePath = new File(outDirFile, packageSubPath);
File file = new File(packagePath, javaClassName + .java);
if(!packagePath.exists()){
packagePath.mkdirs();
6、运行程序 我们将会在项目根目录下 生成文件夹 src-template以及自动生成的实体类User.java
效果图如下:
--- 运行后 ---&
&程序运行前目录结构& &程序运行后目录结构&
自动生成的实体类User.java 代码如下:
package com.study.
* This code is generated by FreeMarker
* @author lvzb.
public class User
/********** attribute ***********/
/********** constructors ***********/
public User() {
public User(String name, int age) {
this.name =
this.age =
/********** get/set ***********/
public String getName() {
public void setName(String name) {
this.name =
public int getAge() {
public void setAge(int age) {
this.age =
四、背后的思考
通过上面两个简单的示例我们了解到所谓的自动生成代码其实就是:
1、定义java类模板文件 2、定义模板数据 3、引用模板文件(.ftl)与模板数据合并生成Java类。
上面的示例中 有的朋友可能会问不就是要编写一个实体对象吗?干嘛搞那么麻烦、又建.ftl文件、又写了那么多类、定义模板数据的过程也是那么麻烦、我还不如手动去写、声明几个属性、set/get快捷键一下子就编写好啦。 真的是这样吗?
从一个辅助工具和软件架构的方面去思考,假设做成一个开发的辅助工具或是插件去完成实体类和对应DAO类的自动生成。假设需要建10个实体类和对应含有增删改查基本操作的DAO类。我在C/S客户端上填写包名、类名、属性字段等信息 然后一键生成,想想那是多么爽、多么痛快的一件事(当然 前提是你的模板类要编写的非常强大、通用),而你也许还在不停的 Ctrl+C、Ctrl+V。
关于如何编写.ftl模板文件、就需要自己去翻阅资料自我学习啦!xml转html工具_EasyXML V4.0 下载 将XML转译成HTML代码 - 偶要下载站
偶要下载站 / 绿色软件下载联盟站!为大家提供一手绿色软件下载服务!
当前位置: &
> xml转html工具_EasyXML V4.0 下载 将XML转译成HTML代码
xml转html工具_EasyXML V4.0 下载 将XML转译成HTML代码
EasyXML 是我知道的目前网络上唯一一款xml转html工具,可以将XML转译成HTML代码,支持QXML 查询语言的结点选择,文件可以以树状结构显示,XSLT 功能可以将XML转译成HTML,希望大家喜欢。。
xml转html工具_EasyXML V4.0 下载 将XML转译成HTML代码
想下载到手机上? 鼠标移动到左边二维码上扫一扫即可!
1. 如果发现下载地址不能下载,请多试几个下载地址!如安装时出现问题,请评论中留言!可以QQ联系告知我详细信息!
2. 为了保证您享受到最快的下载速度,推荐安装迅雷下载工具。如果下载后出现不能解压,请安装winrar等解压缩包软件!
3. 如果下载的压缩包文件需要解压密码,网址就是解压密码:
4. 本站不提供该下载软件的破解版,注册机,注册码,序列号,注册密钥,激活码,等相关信息下载以及咨询!
绿色版/简体中文/★★☆☆☆
绿色版/简体中文/★★☆☆☆
绿色版/简体中文/★★☆☆☆
免费版/简体中文/★★☆☆☆
绿色版/简体中文/★★☆☆☆
绿色版/简体中文/★★☆☆☆
下载排行榜
人气下载榜
偶要下载站集绿色软件下载、手机软件与游戏、各种素材、字体下载于一身的联盟网站,致力打造一个纯绿色软件下载乐园。
本站为非营利性网站,中国绿色联盟提供的资源均来自网络收集整理,下载个人纯属学习交流之用,如有侵犯您的版权请与我联系,我们会马上改正请在下载24小时内删除!
Copyright (C)
偶要下载() All Rights Reserved. 鲁ICP备号 鲁公网安备74号易语言源码转html代码软件(你确定不来?) - 优软分享 - 酷Q社区
请完成以下验证码
查看: 1220|回复: 24
易语言源码转html代码软件(你确定不来?)
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
本帖最后由 dxz2002 于
18:19 编辑
你肯定不相信对吧?
小二~上截图~
转换后的:(局部)(是所有谷歌浏览器打开的哦~)
QQ截图09.png (58.04 KB, 下载次数: 0)
15:23 上传
恩,软件截图:
QQ截图08.png (12.03 KB, 下载次数: 0)
15:24 上传
谢谢支持,送我点cp呗
(375.2 KB, 下载次数: 105)
15:27 上传
下载积分: CP -2
打分: 1 13年的源码拿来改:/06/48017.html&
发表于 2-23 16:13
为什么没人审核………
审核的人在吗
支持,沙发是我的了
你已经是6楼了。。。&
RE: 易语言源码转html代码软件(你确定不来?)
支持,沙发是我的了
你已经是6楼了。。。
支持..一下
试了试,不错挺好用
支持 感觉么么哒
请不要发送重复帖子。
什么叫重复发。。。。我只发了一次啊&
RE: 易语言源码转html代码软件(你确定不来?)
请不要发送重复帖子。
什么叫重复发。。。。我只发了一次啊
https://cqp.cc/t-&
RE: 易语言源码转html代码软件(你确定不来?)
什么叫重复发。。。。我只发了一次啊
额。。帮我删掉可以吗&
RE: 易语言源码转html代码软件(你确定不来?)
https://cqp.cc/t/25894
额。。帮我删掉可以吗
看看,,,,
支持一下下
Powered by Discuz!&Designed by Coxxs&& 2017 CoLab. All Rights Reserved.【提问】html语言编程代码如下,中文没法显示 哪里出问题了求助_编程吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:203,983贴子:
【提问】html语言编程代码如下,中文没法显示 哪里出问题了求助收藏
&html xmlns=&&&&head&&meta http-equiv=&Content-Type& content=&text/ charset=utf-8& /&&title&Mr King & Mrs Queen&/title&&/head&&body&&P&Hello!!!!! This is Mr King and Mrs Queen &/P&&font size=&20& color=&red& face=&隶书&&你是我最重要的决定!!!&/font&&imgsrc =&zlldjc.JPG&&&/body&
编程交流中心,教您编程!达内it软件编程专家,培养更多高端it人才.达内美国上市公司,新的教学模式,国内好的教师团队,让学生轻松学习.
浏览器不兼容,建议换个浏览器试试。。
登录百度帐号推荐应用

我要回帖

更多关于 c语言代码 的文章

 

随机推荐