導航:首頁 > 文件教程 > 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使用教程相關的資料

熱點內容
蘋果6p跳屏是什麼原因 瀏覽:383
下載文件路徑是什麼 瀏覽:852
linux下o文件多重定義 瀏覽:135
為什麼在人多的地方沒有網路 瀏覽:170
華為g7有多少個版本 瀏覽:949
實名寶app哪個好 瀏覽:1
微雲單個文件可以傳多少 瀏覽:843
計算機連成網路的最重要優勢是 瀏覽:411
優盤打開後文件夾為空 瀏覽:495
實時數據寫入量大如何優化 瀏覽:76
哪裡能學程序編程 瀏覽:647
微信裡面的文件儲存在哪個目錄 瀏覽:745
高仿蘋果5s屏幕顯示清楚嗎 瀏覽:897
若有以下程序void 瀏覽:432
大數據主體有哪些 瀏覽:961
如何學習編程的優點 瀏覽:906
最新版本手機qq 瀏覽:463
簡述在word 瀏覽:528
qq怎麼清楚歷史記錄防止被盜 瀏覽:263
發送手機里的錄音文件在哪裡 瀏覽:866

友情鏈接