import
java.io.BufferedWriter;
import
java.io.File;
import
java.io.FileWriter;
import
java.io.IOException;
import
java.io.StringWriter;
import
java.util.Properties;
import
org.apache.velocity.Template;
import
org.apache.velocity.VelocityContext;
import
org.apache.velocity.app.VelocityEngine;
public
class
Test
{
private
static
Properties props
=
null
;
/**
*
@param
args
*
@throws
Exception
*/
public
static
void
main(String[] args)
throws
Exception
{
//
TODO Auto-generated method stub
/*
first, get and initialize an engine
*/
VelocityEngine ve
=
new
VelocityEngine();
ve.init();
/*
next, get the Template
*/
Template t
=
ve.getTemplate(
"
src/Action.vm
"
,
"
gb2312
"
);
//
Template t = ve.getTemplate( "src/Action.vm" );
//
如果改为上面则出现乱码.
/*
create a context and add data
*/
VelocityContext context
=
new
VelocityContext();
Object[] classNames
=
null
;
//
classNames.add("Jgss");
//
classNames.add("Jgfs");
//
classNames.add("Tcfj");
classNames
=
prop2List();
for
(
int
i
=
0
;i
<
classNames.length;i
++
)
{
context.put(
"
className
"
, classNames[i]);
/*
now render the template into a StringWriter
*/
StringWriter writer
=
new
StringWriter();
t.merge( context, writer );
writeJavaFile(classNames[i]
+
"
Action.java
"
,writer.toString());
/*
show the World
*/
//
System.out.println( writer.toString() );
}
}
private
static
void
writeJavaFile(String name, String str)
{
try
{
FileWriter fw
=
new
FileWriter(
new
File(name),
true
);
BufferedWriter bw
=
new
BufferedWriter(fw);
//
将读入的字符串写入到文件中
bw.write(str,
0
, str.length());
bw.flush();
bw.close();
fw.close();
}
catch
(IOException e)
{
System.out.println(
"
Error-- :
"
+
e.toString());
}
}
private
static
void
loadProperties()
{
props
=
new
Properties();
try
{
props.load(Test.
class
.getResourceAsStream(
"
action.properties
"
));
}
catch
(IOException e)
{
//
TODO Auto-generated catch block
e.printStackTrace();
}
}
private
static
Object[] prop2List()
{
loadProperties();
System.out.println(props.size());
if
(props.isEmpty())
return
null
;
Object[] aa
=
props.values().toArray();
return
aa;
}
}
部分Action.vm代码:
public
ActionForward edit$
{className}
(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws
Exception
{
logger.debug(
"
--- edit${className} start ---
"
);
checkToken(request);
$
{className}
Form $
{className.toLowerCase()}
Form
=
($
{className}
Form)form;
action.properties:
A
=
Jaaas
B
=
Jbbbs
C
=
Tcccs