如何在freemarker中获得当前时间

如何在freemarker中获得当前时间,第1张

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代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10096935.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存