Velocity郵件模板

2021-09-25 02:21:09 字數 1956 閱讀 2641

新增以下模板工具類

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...