freemarker根据模版生成文件使用例子文档格式.docx
《freemarker根据模版生成文件使用例子文档格式.docx》由会员分享,可在线阅读,更多相关《freemarker根据模版生成文件使用例子文档格式.docx(25页珍藏版)》请在冰点文库上搜索。
properties=null;
}
publicStringgetClassName(){
returnclassName;
publicvoidsetClassName(StringclassName){
this.className=className;
publicStringgetTableName(){
returntableName;
publicvoidsetTableName(StringtableName){
this.tableName=tableName;
publicListgetProperties(){
returnproperties;
publicvoidsetProperties(Listproperties){
this.properties=properties;
publicvoidsetClassPath(StringclassPath){
this.classPath=classPath;
publicStringgetClassPath(){
returnclassPath;
3.基本类beanRenderProperty
packagecom.ztenc.proj.table.function;
/*��ݿ�ӳ������������*/
publicclassRenderPropertyextendsBuildProperty{
privatebooleanprimary;
privateStringname;
privateStringtype;
privateStringsequence;
privateIntegerlength;
privateStringfield;
/*…省略set跟get方法…*/
4.FreemarkerRender
package******************;
importjava.io.FileOutputStream;
importjava.io.PrintWriter;
importjava.io.StringWriter;
importfreemarker.cache.ClassTemplateLoader;
importfreemarker.template.Configuration;
importfreemarker.template.ObjectWrapper;
importfreemarker.template.SimpleHash;
importfreemarker.template.Template;
importfreemarker.template.TemplateExceptionHandler;
publicclassFreemarkerRenderimplementsRender{
privateConfigurationtemplateconfig;
publicFreemarkerRender()
this.initialize();
publicvoidinitialize()
try
{
if(templateconfig==null)
{
templateconfig=newConfiguration();
templateconfig.setTemplateExceptionHandler(TemplateExceptionHandler.HTML_DEBUG_HANDLER);
templateconfig.setObjectWrapper(ObjectWrapper.DEFAULT_WRAPPER);
templateconfig.setTemplateLoader(newClassTemplateLoader(this.getClass(),"
/"
));
templateconfig.setTemplateUpdateDelay(1200);
templateconfig.setDefaultEncoding("
gb2312"
);
templateconfig.setLocale(newjava.util.Locale("
zh_CN"
templateconfig.setNumberFormat("
0.##########"
}
}
catch(Exceptione)
{}
publicvoidrender(RenderClasstarget,Stringtemplate,Stringoutpath)
StringWriterwriter=newStringWriter();
Templatetl=templateconfig.getTemplate(
template,
templateconfig.getLocale());
SimpleHashroot=newSimpleHash();
root.put("
entity"
target);
tl.process(root,writer);
Assistant.createNewFile(outpath);
FileOutputStreamfos=newFileOutputStream(outpath);
PrintWriterpwriter=newPrintWriter(fos);
pwriter.write(writer.toString());
pwriter.close();
fos.close();
catch(Exceptionex)
ex.printStackTrace();
5.模版hibernate3.ftl
<
?
xmlversion="
1.0"
encoding="
utf-8"
>
!
DOCTYPEhibernate-mappingPUBLIC"
-//Hibernate/HibernateMappingDTD3.0//EN"
"
hibernate-mapping>
<
classname="
${entity.className}"
table="
${entity.tableName}"
dynamic-update="
false"
dynamic-insert="
select-before-update="
optimistic-lock="
version"
<
#ifentity.properties?
exists>
<
#listentity.propertiesasproperty>
<
#ifproperty.primary>
<
idname="
${property.name}"
type="
${property.type}"
#else>
propertyname="
/#if>
#ifproperty.type=="
java.lang.String"
columnname="
${property.field?
upper_case}"
#ifproperty.length?
length="
${property.length}"
/column>
#elseifproperty.type=="
java.util.Date"
<
length=7>
java.lang.Long"
||property.type=="
java.lang.Integer"
||property.type=="
java.lang.Short"
precision="
scale="
0"
#ifproperty.primary==true>
generatorclass="
native"
/>
/id>
/property>
/#list>
/class>
/hibernate-mapping>
6.工具类Assistant
这个类为通用工具类,可单独拷贝到其他项目使用。
该类的结构及功能有:
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStreamWriter;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjavax.servlet.ServletContext;
importjavax.servlet.http.HttpServletRequest;
importorg.apache.log4j.Logger;
publicclassAssistant{
privatestaticfinalLoggerlog=Logger.getLogger(Assistant.class);
publicstaticStringconvertRequestParameter(Stringparameter)throwsException
returnconvertRequestParameter(parameter,null);
publicstaticStringconvertRequestParameter(Stringparameter,Stringformat)throwsException
if(parameter!
=null)
if(format==null)
format="
;
parameter=.URLDecoder.decode(parameter,format);
returnparameter;
//�жϲ����Ƿ���ڲ����ȴ���0
publicstaticbooleannotEmpty(HttpServletRequestrequest,Stringkey)
if(request.getParameter(key)!
=null&
&
request.getParameter(key).length()>
0)
returntrue;
else
returnfalse;
publicstaticvoidwriteFileContent(Stringurl,Stringcontent,ServletContextcontext)throwsException
writeFileContent(getFullPath(url,context),content);
publicstaticStringHTMLEncode(Stringtxt){
if(txt!
txt.length()>
txt=txt.replaceAll("
"
amp;
lt;
gt;
\"
quot;
'
#146;
returntxt;
publicstaticbooleanexistFile(Stringurlpath,ServletContextcontext)
Filefile=newFile(getFullPath(urlpath,context));
if(file.exists())
publicstaticvoidwriteFileContent(Stringpath,Stringcontent)throwsException
Filefile=newFile(path);
if(!
file.exists())
file.createNewFile();
OutputStreamWriterwrite=newOutputStreamWriter(newFileOutputStream(file),"
GBK"
BufferedWriterwriter=newBufferedWriter(write);
writer.write(content);
writer.close();
write.close();
publicstaticStringgetFileContent(Stringurl,ServletContextcontext)throwsException
Stringfilepath=getFullPath(url,context);
returngetFileContent(filepath);
publicstaticStringgetFileContent(Stringpath)throwsException
StringBufferbuf=newStringBuffer();
InputStreamReaderread=newInputStreamReader(newFileInputStream(file),"
BufferedReaderreader=newBufferedReader(read);
try
Stringcontent=reader.readLine();
while(content!
{
buf.append(content);
content=reader.readLine();
}
}finally
if(reader!
reader.close();
if(read!
read.close();
returnbuf.toString();
//���ڼ�(����)
publicstaticjava.util.DateaddTimeByDay(java.util.Datedate,intdays)throwsException
Calendarcalendar=Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DATE,calendar.get(Calendar.DATE)+days);
returncalendar.getTime();
publicstaticjava.util.DateaddTimeByMinutes(java.util.Datedate,intminutes)throwsException
calendar.set(Calendar.MINUTE,calendar.get(Calendar.MINUTE)+minutes);
publicstaticjava.util.DateaddTimeBySeconds(java.util.Datedate,intseconds)throwsException
calendar.set(Calendar.SECOND,calendar.get(Calendar.SECOND)+seconds);
//�õ
���ǰ����
publicstaticjava.util.DatenowTime()throwsException
SimpleDateFormatsdf=newSimpleDateFormat("
yyyy-MM-dd"
Stringdatestr=sdf.format(java.util.Calendar.getInstance().getTime());
returnsdf.parse(datestr);
���ǰʱ��
publicstaticjava.util.DatenowFullTime()throwsException
yyyy-MM-ddHH:
mm:
ss"
publicstaticjava.util.DatenowFullTime(Stringformat)throwsException
SimpleDateFormatsdf=newSimpleDateFormat(format);
publicstaticStringconvertDateStrToString(Stringdatestr,Stringformat)throwsException
Stringresult=null;
result=sdf.format(sdf.parse(datestr));
sdf=newSimpleDateFormat("
returnresult;
publicstaticStringconvertDateToString(java.util.Datedate,Stringformat)throwsException
SimpleDateFormatsdf=