在net中用模版開發,在handler中用到了大量的html代碼。為解決這個問題,我可以采用模版引擎(NVelocity)進行開發。1、首先需要將NVelocity.dll文件放入項目,其次引用。2、配置更改, 代碼如下:
context.Response.ContentType = "text/html"; //1.創建Velocity 引擎(VelocityEngine)并設置屬性 VelocityEngine vltEngine = new VelocityEngine(); vltEngine.Set模板 Template vltTemplate = vltEngine.GetTemplate("photo.htm"); System.IO.StringWriter vltWriter = new System.IO.StringWriter(); // 4.合并模板和上下文對象,輸出 vltTemplate.Merge(vltContext, vltWriter); context.Response.Write(vltWriter.GetStringBuilder().ToString());
將上述代碼中需要的部分更改成我需要的配置,1.MapPath中所放路徑為htm所在路徑,2.vltContext.Put方法中所放為一個鍵值對,值為想要的信息,如datateble,list等等、、,3.在模版創建中vltEngine.GetTemplate方法中所放為當前要用的模版htm。(file)為以文件方式讀取。
3、前臺的使用, 前臺代碼如下:
<head> <title>模版引擎的使用</title> <style type="text/CSS"> img { width: 50px; height: 50px; } table { border: 1px solid black; border-collapse: collapse; } table th, table td { border: 1px solid black; } </style></head><body> <table> <tr> <th> 編號 </th> <th> 圖片 </th> <th> 支持 </th> <th> 反對 </th> <th> 分享 </th> <th> 描述 </th> <th> 作者 </th> </tr> #foreach($jj in $jia.rows) <tr> <td> $!jj.id </td> <td> <img src="$!jj.url" /> </td> <td> $!jj.up </td> <td> $!jj.down </td> <td> $!jj.share </td> <td> $!jj.Description </td> <td> $!jj.author </td> </tr> #end </table></body>
注意在代碼中$是一中語法,在$后面跟上vltContext.Put中建好的鍵值對的鍵就可以訪問數據了,在NVelocity中只有foreach循環,循環開始時用#foreach結束時用#end。$鍵的方式是取值,如果沒有該值的話,會在頁面上顯示原有樣式,用取反的方式($!鍵)這樣有值則會顯示,沒值也不會在頁面上顯示原有樣式。當$!鍵后直接跟了一段英文或字母,則NVelocity會講此次的訪問當作一個不存在的鍵訪問,這種情況下可以用$!{鍵}xiaoxue的語法訪問。
新聞熱點
疑難解答