{
VelocityEngine vltEngine = new VelocityEngine();//创建模板引擎.
vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file");
vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, HttpContext.Current.Server.MapPath("/Admin/")); //这里是模板的路径
vltEngine.Init();
VelocityContext vltContext = new VelocityContext();//设置模板文件中的内容
vltContext.Put("title", model.Title); //替换模板中的内容
vltContext.Put("body", model.ContentDescription);
vltContext.Put.("bookId", model.Id.ToString());
Template vltTemplate = vltEngine.GetTemplate("StaticPage_BookInfoTemplate.htm");//模板引擎加载模板
using (System.IO.StringWriter vltWriter = new System.IO.StringWriter())
{
vltTemplate.Merge(vltContext, vltWriter);
string dir = "/StaticPage/" + model.PublishDate.Year + "/" + model.PublishDate.Month + "/" + model.PublishDate.Day + "/";
Directory.CreateDirectory(Path.GetDirectoryName(HttpContext.Current.Server.MapPath(dir)));//动态生成文件夹
File.WriteAllText(HttpContext.Current.Server.MapPath(dir + model.Id + ".html"), vltWriter.GetStringBuilder().ToString(), System.Text.Encoding.UTF8); //保存到相应的文件夹下
}
}
下面是模板内容,特别需要注意的是,如果模板中有jQuery,使用"$."这样的语句一定要换成 "jQuery.", 因为模板引擎替换会将"$."换成“.” ,美元符号消失
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>$title</title>
<script src="/js/jquery-1.4.2.js" type="text/javascript"></script>
<script type="text/javascript">
function loadComment() {
jQuery.ajax({
url: "/ashx/bookComment.ashx",
type: "post",
dataType: "json",
data: { "action": "load", "bookId": $bookId },
success: function (data) {
var comUl = jQuery("#comUl");
if (data) {
comUl.empty();
for (var i = 0; i < data.length; i++) {
var li = $("<li>" + data[i].createDateTime + ':' + data[i].Msg + "</li>");
li.appendTo(comUl);
}
}
},
error: function () {
alert("服务器内部错误");
}
});
}
function submitComment() {
var content = jQuery.trim($("#content").val());
if (content.length > 0) {
jQuery.ajax({
url: "/ashx/bookComment.ashx",
type: "post",
data: { "action": "add", "bookId": $bookId, "msg": content },
success: function (rel) {
if (rel == 1) {
loadComment();
} else {
alert("评论失败!");
}
},
error: function () {
alert("服务器内部错误");
}
});
} else {
alert("请输入评论内容!");
}
};
$(function () {
loadComment();
jQuery("#submit").click(submitComment);
});
</script>
</head>
<body>
$body
<hr />
<ul id="comUl">
</ul>
<div>
<textarea id="content" rows="20" cols="40"></textarea>
<input type="button" id="submit" value="发表评论" />
</div>
</body>
</html>