导航:首页 > 文件教程 > freemarker使用教程

freemarker使用教程

发布时间:2023-01-06 06:04:54

① 请问各位,FreeMarker怎么用专门用来读取XML数据吗

1. freemarker是一个模版引擎;所谓模版引擎,他就是一个模版,数据你必须提前给它设置好,它才能显示;
2. <name>${name}</name>使用的是El表达式
3. 综上所述,你必须通过后台,解析xml才能在ftl页面使用数据;如果你是标准的xml文件,freemarker提供了一个工具,直接调用就可以解析,不用你自己处理

② 如何在jsP页面中使用FreeMarker标签和Struts2标签

在jsp页面中使用FreeMarker标签和struts2标签,需要在html,引入相应的标签,如下步骤:

1.在web.xml文件中启动JspSupportServlet:
在web.xml文件中作如下配置

Xml代码

<servlet>

<servlet-name>JspSupportServlet</servlet-name>

<servlet-class>

org.apache.struts2.views.JspSupportServlet

</servlet-class>

<!--配置JspSupportServlet自启动-->

<load-on-startup>1</load-on-startup>

</servlet>

2.在FreeMarker模板文件中使用“assign指令”导入标签库

java代码

<#assigns=JspTaglibs["/WEB-INF/struts-tags.tld"]/>

3.编写登录页面FTL文件:

Html代码
<#assigns=JspTaglibs["/WEB-INF/struts-tags.tld"]/>
<html>
<head>
<title>登录页面</title>
</head>
<body>
登陆<br>
<@s.formaction="Login.action">
<@s.textfieldname="username"label="用户名"/>
<@s.textfieldname="password"label="密码"/>
<@s.submitvalue="提交"/>
</@s.form>
提示:${name1}=${name2}
</body>
</html>

注意:
name1和name2属性,是后面从Action里面获取的属性,这里是为了验证在模版中获取属性值
WEB容器默认不会处理 FreeMarker模板页面,如果直接通过浏览器直接请求该页面,否则看到的不是我们想要的结果,而是该模板页面的源代码

③ 如何使用Freemarker生成java代码

Freemarker是一个模板框架。我们可以通过Freemarker进行代码生成或页面的静态生成。 现在简单的说一下怎样使用Freemarker Freemarker的主要生成类
public boolean generate(String templateFileName, Map data,

String fileName) {

try {

//取得模板的位置

String templateFileDir=templateFileName.substring(0, templateFileName.lastIndexOf("/"));

//取得模板的名字

String templateFile=templateFileName.substring(templateFileName.lastIndexOf("/"), templateFileName.length());

//取得生成文件的路径

String genFileDir=fileName.substring(0, fileName.lastIndexOf("/"));

Template template = ConfigurationHelper.getConfiguration(templateFileDir).getTemplate(templateFile);

File fileDir=new File(genFileDir);

org.apache.commons.io.FileUtils.forceMkdir(fileDir);

File output = new File(fileName);

if(output.exists()){

//如何代码已存在不重复生成

return false;

}

Writer writer = new FileWriter(output);

template.process(data, writer);

writer.close();

} catch (TemplateException e) {

e.printStackTrace();

return false;

} catch (IOException e) {

e.printStackTrace();

return false;

}

return true;

}

代码中的Map 是模板所需要的数据,我们可以通过面向对像的方法把数据存在模板中public boolean genDaoInterface(String fileName){

DaoModel Model=new DaoModel();

//设置Dao实现类的包名

Model.setPackageName(DaoConstant.PACKAGE);

//取得接口名

String className=StringUtils.substringBefore(fileName,".");

//设置接口名

Model.setClassName(className);

Map<String, Object> data = new HashMap<String, Object>();

data.put("model", Model);

//设置生成的位置

String filePath=new String("src/"+package2path(DaoConstant.PACKAGE)+"/"+fileName);

//代码生成

return super.generate(DaoConstant.INTERFACE_TEMPLATE, data, filePath);

}

data.put("model", Model);由这句代码可看出我们将可以在模板中直接调用这些数据package ${model.packageName};

public interface ${model.className} extends BaseHibernateDao {

}

④ 什么是 FreeMarker

A、首先freemarker是模板,当你打开页面的时候freemarker可也说是加载最快的。jsp则需要转换为servlet所以第一次回要慢一些。答B、struts2的所有标签都是用freemarker写的,这也就是说你在freemarker中就可以直接引用struts2的任何标签,相当的方便。jsp不行吧。struts也不行。只有struts2。C、如果使用了freemarker他与json一起使用会方便的很多

阅读全文

与freemarker使用教程相关的资料

热点内容
word删除尾注分隔符 浏览:773
公告质疑需要哪些文件 浏览:608
数据库模型是干什么的 浏览:404
win10的驱动怎么安装驱动 浏览:320
word文件水印怎么取消 浏览:443
rhel6的镜像文件在哪里下载 浏览:571
成功正能量微信头像 浏览:848
wps表格如何恢复数据 浏览:264
linuxc静态库创建 浏览:838
u盘有微信文件但微信恢复不了 浏览:585
苹果的网站数据是什么 浏览:22
ps滚字教程 浏览:237
win7网络邻居如何保存ftp 浏览:186
安卓客户端代理服务器 浏览:572
编程用苹果 浏览:659
51虚拟机的文件管理在哪里 浏览:13
win10系统有没有便签 浏览:722
java引用传递和值传递 浏览:109
oracle下载安装教程 浏览:854
php筛选数据库 浏览:830

友情链接