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

熱點內容
手機vmos導入的文件在哪裡 瀏覽:115
蘋果手機可以把文件傳到華為嗎 瀏覽:63
海川化工下載的文件默認到哪裡 瀏覽:343
學唱粵語歌app 瀏覽:975
qq游戲生死狙擊玩不了 瀏覽:120
win10郵件不顯示圖片 瀏覽:922
口袋妖怪所有版本下載 瀏覽:504
我們身邊都有哪些大數據例子 瀏覽:25
震旦adc307掃描的文件在哪裡 瀏覽:999
圖片打開變成文件 瀏覽:194
松下微單電腦傳文件軟體 瀏覽:574
蘋果藍牙鍵盤surface 瀏覽:170
mindmaplinux 瀏覽:733
oppo手機怎麼連接電腦傳輸數據 瀏覽:624
word刪除章節附註分隔符 瀏覽:773
公告質疑需要哪些文件 瀏覽:608
資料庫模型是干什麼的 瀏覽:404
win10的驅動怎麼安裝驅動 瀏覽:320
word文件水印怎麼取消 瀏覽:443
rhel6的鏡像文件在哪裡下載 瀏覽:571

友情鏈接