新增以下模板工具類
public class velocityutil
if(collectionutil.isempty(params))
properties properties=new properties();
properties.setproperty("resource.loader", "class");
properties.setproperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.classpathresourceloader");
properties.setproperty(velocity.encoding_default, "utf-8");
properties.setproperty(velocity.input_encoding, "utf-8");
properties.setproperty(velocity.output_encoding, "utf-8");
properties.setproperty(velocityengine.file_resource_loader_path, velocityutil.class.getresource("/").getpath());
// 建立模板引擎
velocityengine velocityengine = new velocityengine(properties);
// 建立上下文, 用於存放變數
velocitycontext context=new velocitycontext();
for (string key : params.keyset())
stringwriter sw = new stringwriter();
velocityengine.mergetemplate(tempfile, "utf-8", context, sw);
return sw.tostring();
}}
發郵件例項
map params = new hashmap();
params.put("starttime","郵件模板類容,字串,物件,list等");
//模板路徑
string templetfile = "/templates/index.vtl";
string result = velocityutil.mergetemplate(templetfile, params);
//發郵件通知
string mails = user.getusermail().split(",");
emailutil.send******mail(mails, date + "主題", result);
public void send******mail(string tomails,string subject,string content)
// 驗證email
for(string mail : tomails)
}try catch (exception e)
}
模板index.vtl
velocity語言
1.迴圈
#foreach( $dto in $dtolist)
$dto.欄位
#end
2.if else 比數字大小 比較大小需要初始化 $double.parsedouble(string型別)
#set($double = 0.0)
#if(($dto.欄位)==0)
-#elseif($double.parsedouble($dto.欄位)>0)$dto.欄位%↑
#else$dto.欄位%↓
#end
Velocity模板語法說明
用來標識velocity的關鍵字,包括 set if else end foreach end include parse macro等 用來標識velocity的變數 如 i msg tagutil.options 等。用來明確標識velocity變數 比如在頁面中,頁面中有乙個 someonen...
Struts與Velocity模板引擎整合
第 2 步 修改 web.xml,讓它識別 velocity 的 servlet 下一步是修改 struts 的 web.xml 檔案,讓它識別 velocity 的 servlet 並把所有以 vm 結尾的資源請求定向到 velocity servlet,如 修改 web.xml,宣告 veloc...
Web應用中快取Velocity模板
應用場景 web應用在開發階段,是不需要配置velocity快取的,這樣修改了vm模板後可以立馬生效,除錯起來也比較方便。正式上線後,為了提公升效能,我們還是需要開啟velocity快取,這樣vm模板不需要每次訪問的時候重新編譯,直接從vm快取中獲取。經過測試,在大型web應用中cpu負載可以降低1...