㈠ 如何利用SQL中數據使用FreeMarker生成JAVA實體bean代碼
利用freemarker生成JAVA BEAN
Freemarker模板代碼如下:
package ${packageName};
/**
* <#if author == "adams"> @author adams </#if>
*/
pulic class ${className} {
<#list attrs as a>
private ${a.type} ${a.field};
</#list>
<#list attrs as a>
public void set${a.field?cap_first}(${a.type} ${a.field}){
this.${a.field} = ${a.field};
}
public ${a.type} get${a.field?cap_first}(){
return this.${a.field};
}
</#list>
}
Java代碼如下
package com.my.learn.freemarker;
public class Attr{
public String field;
public String type;
public Attr(String field, String type){
this.field = field;
this.type = type;
}
public String getField(){
return this.field;
}
public String getType(){
return this.type;
}
public void setField(String field){
this.field = field;
}
public void setType(String type){
this.type = type;
}
}
package com.my.learn.freemarker;
import java.io.File; import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;
import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException;
public class FmAppUseage {
public static void main(String[] args){
List<Object> list = new ArrayList<Object>();
list.add(new Attr("username", "String"));
list.add(new Attr("password", "String"));
list.add(new Attr("age", "int"));
list.add(new Attr("hobby", "String"));
Map<String,Object> root = new HashMap<String, Object>();
root.put("packageName", "com.my.learn.freemarker");
root.put("className", "User");
root.put("attrs", list);
root.put("author", "adams");
Configuration cfg = new Configuration();
String path = FmAppUseage.class.getResource("/").getPath()+"template";
try {
cfg.(new File(path));
Template template = cfg.getTemplate("/demo.ftl");
StringWriter out = new StringWriter();
template.process(root, out);
System.out.println(out.toString());
} catch (IOException e) {
System.out.println("Cause==>" + e.getCause());
} catch (TemplateException e) {
System.out.println("Cause==>" + e.getCause());
}
}
}
輸出結果如下:
package com.my.learn.freemarker;
/**
* @author adams
*/
pulic class User {
private String username;
private String password;
private int age;
private String hobby;
public void setUsername(String username){
this.username = username;
}
public String getUsername(){
return this.username;
}
public void setPassword(String password){
this.password = password;
}
public String getPassword(){
return this.password;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return this.age;
}
public void setHobby(String hobby){
this.hobby = hobby;
}
public String getHobby(){
return this.hobby;
}
}
當在筆者剛做測試時,將Attr的類定義在了FmAppUseage類的內部,導致不能正常運行,只能將其移除單獨成一個類時,便能正常運行了。 轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦
㈡ ftl文件 是什麼文件
freemarker的文件一般以後綴ftl,ftl文件的頭上要寫
<#assign ww=JspTaglibs["/WEB-INF/webwork.tld"] /
這樣才能在ftl中使用webwork的tag。
freemarker確實是不錯的模版語言引擎,尤其是處理對象圖很方便,處理xml也很方便,還支持xpath
FreeMarker 是一個模版引擎,一個基於文本的模板輸出工具(生成任意的HTML表單代碼)。它是一個Java package,面向Java程序員的class library。它本身並不是針對最終用戶的應用,而是允許程序員將其嵌入到他們的產品中。
FreeMarker被設計用來生成HTML Web頁面,特別是基於MVC(Model View Controller)模式的應用程序。使用 MVC 模式作為動態的WEB頁面的想法,是為了分隔頁面設計者 (HTML 設計者) 和程序員。.每個人做自己擅長的那一部分。設計者可以不通過程序員的改變或修改代碼來改變網頁的樣子,因為應用邏輯(Java程序)和頁面設計(FreeMarker 模版)是分開的。模板不會被復雜繁瑣的程序框架所破壞。即使當一個項目的程序員和HIMTL頁面的製作者是同一個人時,這種分隔也是很有用,因為這樣有助於保持應用的清晰並易於維護。
盡管FreeMarker有一些編程的能力,但它並不是一個象PHP那樣的成熟的編程語言。與Java不同的是,Java程序准備用來顯示的數據(如SQL queries),而Freemarker僅是生成文本頁,這個文本頁顯示用於模板的預備數據。
FreeMarker 不是一個 Web 應用框架,而更適合充當 Web 應用框架里的一個組件的角色,但 FreeMarker 引擎本身對 HTTP 或 servlets 並不關心,它僅僅是生成文本。在非 Web 應用環境中它同樣能夠展示完美的用途。然而值得注意的是:我們為使用 FreeMarker 提供了方便的解決方案,作為 Model2 框架(如 Struts )的視圖組件,你也可以在模版中使用 JSP 標簽。
FreeMarker 是免費的,有 BSD-style license 。它是由 OSI 認證的開源軟體。
㈢ 要在jsp中使用freemarker需要導入什麼包
freemarker-2.3.15.jar