1、打开eclipse IDE集成开发工具。
2、在菜单栏中选择Help菜单,在选择项中选择Install New Software 。
3、点击Add 按钮 Name:FreeMarker; Location:>
4、选择你要安装的文件(注意:如果只需要安装FreeMarker IDE,只需勾选 JBoss Application Development 文件夹 ),选择完后选择Next。
5、安装修复页面,这个页面仅针对eclipse IDE第一次安装插件才会显示。
6、等安装完成会询问你是否重启Eclipse IDE来应用你下载的插件,选择Restart Now;等Eclipse IDE后会d出一个内容为:是否同JBoss团队通过eclipse统计信息的询问窗口,选择Yes即可。
String realpath = ServletActionContextgetServletContext()getRealPath("/upload") ;//获取服务器路径
String[] targetFileName = uploadFileName;
for (int i = 0; i < uploadlength; i++) {
File target = new File(realpath, targetFileName[i]);
FileUtilscopyFile(upload[i], target);
//这是一个文件复制类copyFile()里面就是IO *** 作,如果你不用这个类也可以自己写一个IO复制文件的类
}
其中private File[] upload;// 实际上传文件
private String[] uploadContentType; // 文件的内容类型
private String[] uploadFileName; // 上传文件名
这三个参数必须这样命名,因为文件上传控件默认是封装了这3个参数的,且在action里面他们应有get,set方法
Freemarker是一个模板框架。我们可以通过Freemarker进行代码生成或页面的静态生成。 现在简单的说一下怎样使用Freemarker Freemarker的主要生成类
public boolean generate(String templateFileName, Map data,
String fileName) {
try {
//取得模板的位置
String templateFileDir=templateFileNamesubstring(0, templateFileNamelastIndexOf("/"));
//取得模板的名字
String templateFile=templateFileNamesubstring(templateFileNamelastIndexOf("/"), templateFileNamelength());
//取得生成文件的路径
String genFileDir=fileNamesubstring(0, fileNamelastIndexOf("/"));
Template template = ConfigurationHelpergetConfiguration(templateFileDir)getTemplate(templateFile);
File fileDir=new File(genFileDir);
orgapachecommonsioFileUtilsforceMkdir(fileDir);
File output = new File(fileName);
if(outputexists()){
//如何代码已存在不重复生成
return false;
}
Writer writer = new FileWriter(output);
templateprocess(data, writer);
writerclose();
} catch (TemplateException e) {
eprintStackTrace();
return false;
} catch (IOException e) {
eprintStackTrace();
return false;
}
return true;
}
代码中的Map 是模板所需要的数据,我们可以通过面向对像的方法把数据存在模板中public boolean genDaoInterface(String fileName){
DaoModel daoModel=new DaoModel();
//设置Dao实现类的包名
daoModelsetPackageName(DaoConstantPACKAGE);
//取得接口名
String className=StringUtilssubstringBefore(fileName,"");
//设置接口名
daoModelsetClassName(className);
Map<String, Object> data = new HashMap<String, Object>();
dataput("model", daoModel);
//设置生成的位置
String filePath=new String("src/"+package2path(DaoConstantPACKAGE)+"/"+fileName);
//代码生成
return supergenerate(DaoConstantINTERFACE_TEMPLATE, data, filePath);
}
dataput("model", daoModel);由这句代码可看出我们将可以在模板中直接调用这些数据package ${modelpackageName};
public interface ${modelclassName} extends BaseHibernateDao {
}
这里应该是相对地址,相对于你配置freemarker引擎的时候的地址,配置freemarker模板位置有两个方法如下:
<beans><bean id="freeMarkerConfigurer" class="orgspringframeworkwebservletviewfreemarkerFreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/config/template/" />
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">0</prop>
<prop key="default_encoding">GBK</prop>
<prop key="locale">zh_CN</prop>
</props>
</property>
</bean>
<!-- 或者这种 -->
<bean id="freeMarkerConfiguration" class="orgspringframeworkuifreemarkerFreeMarkerConfigurationFactoryBean">
<property name="templateLoaderPath" value="file:D:/Java/workspace/project/WebContent/WEB_INF/config/template" />
</bean>
<bean id="templateService" class="comahtecssiserviceimplTemplateServiceFreeMarkerImpl">
<property name="freeMarkerConfigurer" ref="freeMarkerConfigurer" />
<property name="freeMarkerConfiguration" ref="freeMarkerConfiguration" />
</bean>
</beans>
这里填的应该是相对于 templateLoaderPath 这个属性的地址,你再试试看。
不知道session是否可以取,你的session第一个字母大写了何不再action中加一个url属性,再使用<result>${url}</result>来实现AngelAndAngel 写道你这样 你在action里面定义一个String sessionId的变量,然后在方法里边赋值sessionId=你的sessionid;然后把配置改为<result type="freemarker">[b]${sessionId}[/b]/defaulthtm</result> 不行,依然是取不到。其实我这个地方就是想实现多套模版的功能。不同语言采用不同的模版。所以定义了这个路劲。 问题补充:AngelAndAngel 写道应该是没问题啊 晕type="freemarker"严重: Servletservice() for servlet default threw exceptionjavaioFileNotFoundException: Template /defaulthtm not found上面的路径都是配好的,在action里面都打印出来了 问题补充:AngelAndAngel 写道你设置的session属性 有get和set方法吗这个是struts2必须的,呵呵,ognl嘛,在页面上我都能取到这个值呢,我就纳了闷了,我很早以前就这么整过,当时还是webwork呢。奇怪的很。 问题补充:AngelAndAngel 写道那是你文件路径没找到?我再整整。
以上就是关于如何在freemarker中获得当前时间全部的内容,包括:如何在freemarker中获得当前时间、java中怎么把文件上传到服务器的指定路径、如何使用Freemarker生成java代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)