sgjj 5 年 前
コミット
cd3f054814

+ 14 - 5
pom.xml

@@ -51,17 +51,26 @@
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 	</properties>
 	<repositories>
-		<!--阿里云中央仓库-->
 		<repository>
-			<id>maven-ali</id>
-			<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
+			<id>sonatype-nexus-snapshots</id>
+			<name>Sonatype Nexus Snapshots</name>
+			<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
 			<releases>
 				<enabled>true</enabled>
 			</releases>
 			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+		</repository>
+		<repository>
+			<id>sonatype</id>
+			<name>Sonatype Snapshots</name>
+			<url>https://oss.sonatype.org/content/groups/public/</url>
+			<releases>
+				<enabled>false</enabled>
+			</releases>
+			<snapshots>
 				<enabled>true</enabled>
-				<updatePolicy>always</updatePolicy>
-				<checksumPolicy>fail</checksumPolicy>
 			</snapshots>
 		</repository>
 	</repositories>

+ 71 - 83
src/main/java/net/mingsoft/cms/util/CmsParserUtil.java

@@ -92,103 +92,91 @@ public class CmsParserUtil extends ParserUtil {
 			Template mobileTemplate = cfg.getTemplate(
 					BasicUtil.getApp().getAppMobileStyle() + File.separator + column.getCategoryListUrl(), Const.UTF8);
 			// pc端模板
-			Template template = cfg.getTemplate(File.separator + column.getCategoryListUrl(), Const.UTF8);
+
 			// 文章的栏目模型编号
 			String columnContentModelId = column.getMdiyModelId();
-			StringWriter writer = new StringWriter();
-			try {
-				// 为了分页添加column,判断栏目是否为父栏目
-				template.process(null, writer);
-				String content = writer.toString();
-				//获取列表页显示的文章数量
-				int pageSize = TagParser.getPageSize(content);
-				//获取总数
-				int totalPageSize = PageUtil.totalPage(articleIdTotal, pageSize);
 
-				String columnListPath;
-				String mobilePath;
-				ModelEntity contentModel = null;
-				// 判断当前栏目是否有自定义模型
-				if (StringUtils.isNotBlank(columnContentModelId)) {
-					// 通过栏目模型编号获取自定义模型实体
-					contentModel = (ModelEntity) SpringUtil.getBean(ModelBizImpl.class).getEntity(Integer.parseInt(columnContentModelId));
-				}
-				int pageNo = 1;
-				PageBean page = new PageBean();
-				page.setSize(pageSize);
-				//全局参数设置
-				Map<String, Object> parserParams = new HashMap<String, Object>();
-				parserParams.put(COLUMN, column);
-				page.setTotal(totalPageSize);
-				parserParams.put(IS_DO, false);
-				parserParams.put(HTML, HTML);
-				parserParams.put(APP_ID, BasicUtil.getAppId());
-				if (contentModel!=null) {
-					// 将自定义模型编号设置为key值
-					parserParams.put(TABLE_NAME, contentModel.getModelTableName());
-				}
-				//如果单站点,就废弃站点地址
-				if(ParserUtil.IS_SINGLE) {
-					parserParams.put(ParserUtil.URL, BasicUtil.getUrl());
+			//获取列表页显示的文章数量
+			int pageSize = 10;
+			//获取总数
+			int totalPageSize = PageUtil.totalPage(articleIdTotal, pageSize);
+
+			String columnListPath;
+			String mobilePath;
+			ModelEntity contentModel = null;
+			// 判断当前栏目是否有自定义模型
+			if (StringUtils.isNotBlank(columnContentModelId)) {
+				// 通过栏目模型编号获取自定义模型实体
+				contentModel = (ModelEntity) SpringUtil.getBean(ModelBizImpl.class).getEntity(Integer.parseInt(columnContentModelId));
+			}
+			int pageNo = 1;
+			PageBean page = new PageBean();
+			page.setSize(pageSize);
+			//全局参数设置
+			Map<String, Object> parserParams = new HashMap<String, Object>();
+			parserParams.put(COLUMN, column);
+			page.setTotal(totalPageSize);
+			parserParams.put(IS_DO, false);
+			parserParams.put(HTML, HTML);
+			parserParams.put(APP_ID, BasicUtil.getAppId());
+			if (contentModel!=null) {
+				// 将自定义模型编号设置为key值
+				parserParams.put(TABLE_NAME, contentModel.getModelTableName());
+			}
+			//如果单站点,就废弃站点地址
+			if(ParserUtil.IS_SINGLE) {
+				parserParams.put(ParserUtil.URL, BasicUtil.getUrl());
+			}
+
+			//文章列表页没有写文章列表标签,总数为0
+			if (totalPageSize <= 0) {
+				// 数据库中第一页是从开始0*size
+				// 首页路径index.html
+				mobilePath = ParserUtil.buildMobileHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX);
+				columnListPath = ParserUtil.buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX);
+				// 设置分页的起始位置
+				page.setPageNo(pageNo);
+				parserParams.put(ParserUtil.PAGE, page);
+				String read = ParserUtil.read(File.separator + column.getCategoryListUrl(), false, parserParams);
+				FileUtil.writeString(read, columnListPath, Const.UTF8);
+				// 判断是手机端生成还是pc端,防止重复生成
+				if (ParserUtil.hasMobileFile(column.getCategoryListUrl())) {
+					parserParams.put(ParserUtil.MOBILE, BasicUtil.getApp().getAppMobileStyle());
+					String read1 = ParserUtil.read(File.separator + column.getCategoryListUrl(), true, parserParams);
+					FileUtil.writeString(read1, mobilePath, Const.UTF8);
 				}
 
-				//文章列表页没有写文章列表标签,总数为0
-				if (totalPageSize <= 0) {
-					// 数据库中第一页是从开始0*size
-					// 首页路径index.html
-					mobilePath = ParserUtil.buildMobileHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX);
-					columnListPath = ParserUtil.buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX);
+			} else {
+				// 遍历分页
+				for (int i = 0; i < totalPageSize; i++) {
+					if (i == 0) {
+						// 数据库中第一页是从开始0*size
+						// 首页路径index.html
+						mobilePath = ParserUtil
+								.buildMobileHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX);
+						columnListPath = ParserUtil
+								.buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX);
+					} else {
+						// 其他路径list-2.html
+						mobilePath = ParserUtil.buildMobileHtmlPath(
+								column.getCategoryPath() + File.separator + ParserUtil.PAGE_LIST + pageNo);
+						columnListPath = ParserUtil
+								.buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.PAGE_LIST + pageNo);
+					}
 					// 设置分页的起始位置
 					page.setPageNo(pageNo);
 					parserParams.put(ParserUtil.PAGE, page);
-					TagParser tag = new TagParser(content,parserParams);
-					FileUtil.writeString(tag.rendering(), columnListPath, Const.UTF8);
+					String read = ParserUtil.read(File.separator + column.getCategoryListUrl(), false, parserParams);
+					FileUtil.writeString(read, columnListPath, Const.UTF8);
 					// 判断是手机端生成还是pc端,防止重复生成
 					if (ParserUtil.hasMobileFile(column.getCategoryListUrl())) {
-						writer = new StringWriter();
-						mobileTemplate.process(null, writer);
 						parserParams.put(ParserUtil.MOBILE, BasicUtil.getApp().getAppMobileStyle());
-						tag = new TagParser(writer.toString(), parserParams);
+						String read1 = ParserUtil.read(File.separator + column.getCategoryListUrl(), true, parserParams);
 						// 将tag.getContent()写入路径
-						FileUtil.writeString(tag.rendering(), mobilePath, Const.UTF8);
-					}
-
-				} else {
-					// 遍历分页
-					for (int i = 0; i < totalPageSize; i++) {
-						if (i == 0) {
-							// 数据库中第一页是从开始0*size
-							// 首页路径index.html
-							mobilePath = ParserUtil
-									.buildMobileHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX);
-							columnListPath = ParserUtil
-									.buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX);
-						} else {
-							// 其他路径list-2.html
-							mobilePath = ParserUtil.buildMobileHtmlPath(
-									column.getCategoryPath() + File.separator + ParserUtil.PAGE_LIST + pageNo);
-							columnListPath = ParserUtil
-									.buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.PAGE_LIST + pageNo);
-						}
-						// 设置分页的起始位置
-						page.setPageNo(pageNo);
-						parserParams.put(ParserUtil.PAGE, page);
-						TagParser tag = new TagParser(content,parserParams);
-						FileUtil.writeString(tag.rendering(), columnListPath, Const.UTF8);
-						// 判断是手机端生成还是pc端,防止重复生成
-						if (ParserUtil.hasMobileFile(column.getCategoryListUrl())) {
-							writer = new StringWriter();
-							mobileTemplate.process(null, writer);
-							parserParams.put(ParserUtil.MOBILE, BasicUtil.getApp().getAppMobileStyle());
-							tag = new TagParser(writer.toString(),parserParams);
-							// 将tag.getContent()写入路径
-							FileUtil.writeString(tag.rendering(), mobilePath, Const.UTF8);
-						}
-						pageNo++;
+						FileUtil.writeString(read1, mobilePath, Const.UTF8);
 					}
+					pageNo++;
 				}
-			} catch (TemplateException e) {
-				e.printStackTrace();
 			}
 		}catch (TemplateNotFoundException e){
 			e.printStackTrace();

+ 2 - 2
src/main/resources/application-dev.yml

@@ -1,7 +1,7 @@
 spring:
   datasource:
-    url: jdbc:mysql://localhost:3306/db-mcms-open?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://localhost:3306/msopen?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
     username: root
-    password:
+    password: 123456
     filters: wall,mergeStat
     type: com.alibaba.druid.pool.DruidDataSource

+ 3 - 2
src/main/resources/application.yml

@@ -9,17 +9,18 @@ logging:
   file:
     name: mcms.log #会在项目的根目录下生成对应的mcms.log文件,也可以根据实际情况写绝对路径,例如:d:/mcms.log
     path: log #会在项目的根目录下生成log目录,里面会生成对应的日期目录,日期目录下面生成日志压缩包备份文件,默认按每10M分割一个日志文件,例如:log/2020-01/app-2020-01-03-18.1.log.gz(表示2020年1月3号下午六点的第一个备份),也可以根据实际情况写绝对路径,例如:d:/log
-    
+
 ms:
   swagger:
     enable: true #启用swagger文档,生产的时候务必关掉
   manager:
     path: /ms #后台访问的路径,如:http://项目/ms/login.do,生成的时候建议修改
     view-path: /WEB-INF/manager #后台视图层路径配置
-    chcek-code: true #默认开启验证码验证,false验证码不验证
+    chcek-code: false #默认开启验证码验证,false验证码不验证
 
   upload:
     path: upload #文件上传路径,可以根据实际写绝对路径
+    template: template #文件上传路径,可以根据实际写绝对路径
     mapping: /upload/** #修改需要谨慎,系统第一次部署可以随意修改,如果已经有了上传数据,再次修改会导致之前上传的文件404
     denied: .exe,.jsp
     multipart:

+ 755 - 0
src/main/webapp/WEB-INF/manager/cms/generate/index.ftl

@@ -0,0 +1,755 @@
+<html xmlns="http://www.w3.org/1999/html">
+<head>
+    <title>静态化</title>
+    <#include "../../include/head-file.ftl">
+    <style>
+        [v-cloak]{
+            display: none;
+        }
+    </style>
+</head>
+<body class="custom-body">
+<div id="app" v-cloak>
+    <div class="class-1" >
+        <el-alert style="line-height: 22px;padding: 20px;"
+                  title=""
+                  type="success"
+                  :closable="false"
+                  show-icon>
+            更新主页,如果系统存在引导页面可以手动修改主页位置文件名,default.html引导页面index.html主页。<br/>
+            更新栏目列表,推荐使用指定栏目更新。系统提示“更新中”请不要刷新页面或点击其他菜单。<br/>
+            根据时间与栏目类型生成文章
+        </el-alert>
+    </div>
+    <el-form ref="form" label-width="100px" size="mini">
+        <div class="class-2" >
+            <div class="class-3" >
+                <div class="class-4" >
+                    <el-form-item  label="主题模板">
+                        <el-select v-model="template"
+                                   :filterable="true"
+                                   :clearable="false"
+                                   placeholder="请选择主题模板">
+                            <el-option v-for='item in templateOptions' :key="item" :value="item"
+                                       :label="item"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </div>
+                <div class="class-7" >
+                    <el-form-item>
+                        <template slot='label'>主页位置
+                            <el-popover slot="label" placement="top-start" title="提示" width="200" trigger="hover" content="主页位置htm文件名一般为index.html或default.html">
+                                <i class="el-icon-question" slot="reference"></i>
+                            </el-popover>
+                        </template>
+                        <el-input v-model="position"
+                                  :disabled="false"
+                                  :style="{width:  '100%'}"
+                                  :clearable="true"
+                                  placeholder="请输入主页位置">
+                        </el-input>
+                    </el-form-item>
+                </div>
+                <div class="class-10" >
+                    <el-form-item>
+                        <el-button type="primary" @click="updataIndex" :loading="homeLoading">{{homeLoading?'更新中':'生成主页'}}</el-button>
+                        <el-button plain @click="viewIndex">预览主页</el-button>
+                    </el-form-item>
+                </div>
+            </div>
+            <div class="class-13" >
+                <div class="class-14" >
+                    <el-form-item  label="文章栏目">
+                        <tree-select v-model="contentSection"
+                                     :props="{value: 'id',label: 'categoryTitle',children: 'children'}"
+                                     :options="treeList" :style="{width:'100%'}"
+                                     placeholder="请选择文章栏目">
+                        </tree-select>
+                    </el-form-item>
+                </div>
+                <div class="class-17" >
+                    <el-form-item>
+                        <template slot='label'>指定时间
+                            <el-popover slot="label" placement="top-start" title="提示" width="200" trigger="hover" content="指定时间需要小于生成文章的发布时间">
+                                <i class="el-icon-question" slot="reference"></i>
+                            </el-popover>
+                        </template>
+                        <el-date-picker
+                                v-model="time"
+                                placeholder="请选择指定时间"
+                                start-placeholder=""
+                                end-placeholder=""
+                                :readonly="false"
+                                :disabled="false"
+                                :editable="false"
+                                :clearable="false"
+                                format="yyyy-MM-dd"
+                                value-format="yyyy-MM-dd"
+                                :style="{width:'100%'}"
+                                type="date">
+                        </el-date-picker>
+                    </el-form-item>
+                </div>
+                <div class="class-20" >
+                    <el-form-item>
+                        <el-button type="primary" @click="updateArticle" :loading="articleLoading">{{articleLoading?'更新中':'生成文章'}}</el-button>
+                    </el-form-item>
+                </div>
+            </div>
+            <div class="class-23" >
+                <div class="class-24" >
+                    <el-form-item  label="生成栏目">
+                        <tree-select v-model="section"
+                                     :props="{value: 'id',label: 'categoryTitle',children: 'children'}"
+                                     :options="treeList" :style="{width:'100%'}"
+                                     placeholder="请选择文章栏目">
+                        </tree-select>
+                    </el-form-item>
+                </div>
+
+                <div class="class-30" >
+                    <el-form-item>
+                        <el-button type="primary" @click="updateColumn" :loading="columnLoading">{{columnLoading?'更新中':'生成栏目'}}</el-button>
+                    </el-form-item>
+                </div>
+            </div>
+        </div>
+    </el-form>
+</div>
+</body>
+</html>
+<script>
+    "use strict";
+
+    var app = new Vue({
+        el: '#app',
+        watch: {},
+        data: {
+            homeLoading: false,
+            articleLoading: false,
+            columnLoading: false,
+            template: '',
+            //主题模板
+            templateOptions: [],
+            position: 'index',
+            //位置
+            contentSection: '0',
+            //文章栏目
+            section: '0',
+            //栏目
+            time: ms.util.date.fmt(new Date(), "yyyy-MM-dd"),
+            treeList: [{
+                id: '0',
+                categoryTitle: '顶级栏目',
+                children: []
+            }]
+        },
+        methods: {
+            //更新主页
+            updataIndex: function () {
+                var that = this;
+                if (!that.position || that.position == '') {
+                    this.$notify({
+                        title: '请输入主页位置!',
+                        type: 'warning'
+                    });
+                    return;
+                }
+                that.homeLoading = true;
+                ms.http.post(ms.manager + '/cms/generate//generateIndex.do', {
+                    url: that.template,
+                    position: that.position
+                }).then(function (data) {
+                    if (data.result) {
+                        that.$notify({
+                            title: '更新成功!',
+                            type: 'success'
+                        });
+                    } else {
+                        that.$notify({
+                            title: '更新失败!',
+                            message: "错误",
+                            type: 'error'
+                        });
+                    }
+                }).catch(function (err) {
+                    that.$notify({
+                        title: '更新失败!',
+                        message: err,
+                        type: 'error'
+                    });
+                    console.log(err);
+                }).finally(function () {
+                    that.homeLoading = false;
+                });
+            },
+            //预览主页
+            viewIndex: function () {
+                if (!this.position || this.position == '') {
+                    this.$notify({
+                        title: '请输入主页位置!',
+                        type: 'warning'
+                    });
+                    return;
+                }
+                window.open(ms.manager + "/cms/generate/" + this.position + "/viewIndex.do");
+            },
+            //更新栏目
+            updateColumn: function () {
+                var that = this;
+                that.columnLoading = true;
+                ms.http.get(ms.manager + '/cms/generate/' + (that.section ? that.section : 0) + '/genernateColumn.do').then(function (data) {
+                    if (data.result) {
+                        that.$notify({
+                            title: '更新成功!',
+                            type: 'success'
+                        });
+                    }
+                }).catch(function (err) {
+                    that.$notify({
+                        title: '更新失败!',
+                        message: err,
+                        type: 'error'
+                    });
+                    console.log(err);
+                }).finally(function () {
+                    that.columnLoading = false;
+                });
+            },
+            //生成文章栏目
+            updateArticle: function () {
+                var that = this;
+                that.articleLoading = true;
+                ms.http.post(ms.manager + '/cms/generate/' + (that.contentSection ? that.contentSection : 0) + '/generateArticle.do', {
+                    dateTime: that.time
+                }).then(function (data) {
+                    if (data.result) {
+                        that.$notify({
+                            title: '更新成功!',
+                            type: 'success'
+                        });
+                    }
+                }).catch(function (err) {
+                    that.$notify({
+                        title: '更新失败!',
+                        message: err,
+                        type: 'error'
+                    });
+                    console.log(err);
+                }).finally(function () {
+                    that.articleLoading = false;
+                });
+            },
+            //获取主题模板数据源
+            templateOptionsGet: function () {
+                var that = this;
+                ms.http.get(ms.manager + '/template/queryTemplateFileForColumn.do', {
+                    pageSize: 99999
+                }).then(function (data) {
+                    that.templateOptions = data.data; //寻找主页
+
+                    var template = that.templateOptions.find(function (x) {
+                        return x.indexOf("index") != -1 || x.indexOf("default") != -1;
+                    }); //没有就找其他的
+
+                    that.template = template || (that.templateOptions.length > 0 ? that.templateOptions[0] : "");
+                }).catch(function (err) {
+                    console.log(err);
+                });
+            },
+            getTree: function () {
+                var that = this;
+                ms.http.get(ms.manager + "/cms/category/list.do", {
+                    pageSize: 9999
+                }).then(function (res) {
+                    if (res.result) {
+                        //res.data.rows.push({id:0,categoryId: null,categoryTitle:'顶级栏目管理'});
+                        that.treeList[0].children = ms.util.treeData(res.data.rows, 'id', 'categoryId', 'children');
+                    }
+                }).catch(function (err) {
+                    console.log(err);
+                });
+            }
+        },
+        created: function () {
+            this.getTree();
+            this.templateOptionsGet();
+        }
+    });
+</script>
+<style>
+    input{
+        width: 100%!important;
+    }
+    .class-1
+    {
+        color:#333333;
+        outline:none;
+        outline-offset:-1px;
+        max-width:100%;
+        background-color:#FFFFFF;
+        flex-direction:row;
+        display:flex;
+        animation-duration:1s;
+        width:100%;
+        background-repeat:no-repeat;
+        padding: 14px;
+    }
+    .class-2
+    {
+        color:#333333;
+        outline:none;
+        outline-offset:-1px;
+        height:500px;
+        max-width:100%;
+        flex-direction:row;
+        display:flex;
+        animation-duration:1s;
+        width:100%;
+        background-repeat:no-repeat;
+    }
+    .class-3
+    {
+        color:#333333;
+        padding:20px;
+        outline:none;
+        outline-offset:-1px;
+        height:200px;
+        max-width:100%;
+        background-color:#FFFFFF;
+        flex-direction:column;
+        display:flex;
+        justify-content:end;
+        margin: 12px 6px 12px 12px;
+        animation-duration:1s;
+        width:100%;
+        padding-left:20px;
+        background-repeat:no-repeat;
+    }
+    .class-4
+    {
+        color:#333333;
+        outline:none;
+        outline-offset:-1px;
+        max-width:100%;
+        align-items:center;
+        flex-direction:row;
+        display:flex;
+        animation-duration:1s;
+        background-repeat:no-repeat;
+    }
+    .class-5
+    {
+        color:#333333;
+        word-wrap:break-word;
+        display:inline-block;
+        animation-duration:1s;
+        font-size:14px;
+        line-height:1.4;
+    }
+    .class-6
+    {
+        border-color:#EEEEEE;
+        color:#606266;
+        padding-right:15px;
+        box-sizing:boredr-box;
+        outline:none;
+        border-width:1px;
+        border-style:solid;
+        height:40px;
+        margin-left:20px;
+        animation-duration:1s;
+        background:none;
+        width:320px;
+        font-size:12px;
+        line-height:40px;
+        padding-left:15px;
+    }
+    .class-7
+    {
+        border-color:#EEEEEE;
+        color:#333333;
+        outline:none;
+        outline-offset:-1px;
+        border-width:1px;
+        border-style:none;
+        max-width:100%;
+        align-items:center;
+        flex-direction:row;
+        display:flex;
+        animation-duration:1s;
+        background-repeat:no-repeat;
+    }
+    .class-8
+    {
+        color:#333333;
+        word-wrap:break-word;
+        display:inline-block;
+        animation-duration:1s;
+        font-size:14px;
+        line-height:1.4;
+    }
+    .class-9
+    {
+        border-color:#EEEEEE;
+        color:#606266;
+        padding-right:15px;
+        box-sizing:boredr-box;
+        outline:none;
+        border-width:1px;
+        border-style:solid;
+        height:40px;
+        margin-left:20px;
+        animation-duration:1s;
+        background:none;
+        width:320px;
+        font-size:12px;
+        line-height:40px;
+        padding-left:15px;
+    }
+    .class-10
+    {
+        border-color:#EEEEEE;
+        color:#333333;
+        outline:none;
+        outline-offset:-1px;
+        border-width:1px;
+        border-style:none;
+        max-width:100%;
+        align-items:center;
+        flex-direction:row;
+        display:flex;
+        animation-duration:1s;
+        background-repeat:no-repeat;
+    }
+    .class-11
+    {
+        cursor:pointer;
+        color:#ffffff;
+        box-sizing:border-box;
+        height:34px;
+        background-color:#0099ff;
+        text-align:center;
+        display:inline-block;
+        animation-duration:1s;
+        border-radius:4px;
+        width:98px;
+        line-height:34px;
+        font-size:14px;
+    }
+    .class-12
+    {
+        cursor:pointer;
+        border-color:#0099FF;
+        color:#0099FF;
+        box-sizing:border-box;
+        border-width:1px;
+        border-style:solid;
+        height:34px;
+        background-color:#FFFFFF;
+        text-align:center;
+        display:inline-block;
+        margin-left:10px;
+        animation-duration:1s;
+        border-radius:4px;
+        width:98px;
+        line-height:34px;
+        font-size:14px;
+    }
+    .class-13
+    {
+        color:#333333;
+        padding:20px;
+        outline:none;
+        outline-offset:-1px;
+        height:200px;
+        max-width:100%;
+        background-color:#FFFFFF;
+        flex-direction:column;
+        display:flex;
+        justify-content:end;
+        margin: 12px 6px;
+        animation-duration:1s;
+        width:100%;
+        padding-left:20px;
+        background-repeat:no-repeat;
+    }
+    .class-14
+    {
+        color:#333333;
+        outline:none;
+        outline-offset:-1px;
+        max-width:100%;
+        align-items:center;
+        flex-direction:row;
+        display:flex;
+        animation-duration:1s;
+        background-repeat:no-repeat;
+    }
+    .class-15
+    {
+        color:#333333;
+        word-wrap:break-word;
+        display:inline-block;
+        animation-duration:1s;
+        font-size:14px;
+        line-height:1.4;
+    }
+    .class-16
+    {
+        border-color:#EEEEEE;
+        color:#606266;
+        padding-right:15px;
+        box-sizing:boredr-box;
+        outline:none;
+        border-width:1px;
+        border-style:solid;
+        height:40px;
+        margin-left:20px;
+        animation-duration:1s;
+        background:none;
+        width:320px;
+        font-size:12px;
+        line-height:40px;
+        padding-left:15px;
+    }
+    .class-17
+    {
+        border-color:#EEEEEE;
+        color:#333333;
+        outline:none;
+        outline-offset:-1px;
+        border-width:1px;
+        border-style:none;
+        max-width:100%;
+        align-items:center;
+        flex-direction:row;
+        display:flex;
+        animation-duration:1s;
+        background-repeat:no-repeat;
+    }
+    .class-18
+    {
+        color:#333333;
+        word-wrap:break-word;
+        display:inline-block;
+        animation-duration:1s;
+        font-size:14px;
+        line-height:1.4;
+    }
+    .class-19
+    {
+        border-color:#EEEEEE;
+        color:#606266;
+        padding-right:15px;
+        box-sizing:boredr-box;
+        outline:none;
+        border-width:1px;
+        border-style:solid;
+        height:40px;
+        margin-left:20px;
+        animation-duration:1s;
+        background:none;
+        width:320px;
+        font-size:12px;
+        line-height:40px;
+        padding-left:15px;
+    }
+    .class-20
+    {
+        color:#333333;
+        outline:none;
+        outline-offset:-1px;
+        max-width:100%;
+        align-items:center;
+        flex-direction:row;
+        display:flex;
+        animation-duration:1s;
+        background-repeat:no-repeat;
+    }
+    .class-21
+    {
+        cursor:pointer;
+        color:#ffffff;
+        box-sizing:border-box;
+        height:34px;
+        background-color:#0099ff;
+        text-align:center;
+        display:inline-block;
+        animation-duration:1s;
+        border-radius:4px;
+        width:98px;
+        line-height:34px;
+        font-size:14px;
+    }
+    .class-22
+    {
+        cursor:pointer;
+        border-color:#0099FF;
+        color:#0099FF;
+        box-sizing:border-box;
+        border-width:1px;
+        border-style:solid;
+        height:34px;
+        background-color:#FFFFFF;
+        text-align:center;
+        display:inline-block;
+        margin-left:10px;
+        animation-duration:1s;
+        border-radius:4px;
+        width:98px;
+        line-height:34px;
+        font-size:14px;
+    }
+    .class-23
+    {
+        color:#333333;
+        padding:20px;
+        outline:none;
+        outline-offset:-1px;
+        height:200px;
+        max-width:100%;
+        background-color:#FFFFFF;
+        flex-direction:column;
+        display:flex;
+        justify-content:end;
+        margin: 12px 12px 12px 6px;
+        animation-duration:1s;
+        width:100%;
+        padding-left:20px;
+        background-repeat:no-repeat;
+    }
+    .class-24
+    {
+        color:#333333;
+        outline:none;
+        outline-offset:-1px;
+        max-width:100%;
+        align-items:center;
+        flex-direction:row;
+        display:flex;
+        animation-duration:1s;
+        background-repeat:no-repeat;
+    }
+    .class-25
+    {
+        color:#333333;
+        word-wrap:break-word;
+        display:inline-block;
+        animation-duration:1s;
+        font-size:14px;
+        line-height:1.4;
+    }
+    .class-26
+    {
+        border-color:#EEEEEE;
+        color:#606266;
+        padding-right:15px;
+        box-sizing:boredr-box;
+        outline:none;
+        border-width:1px;
+        border-style:solid;
+        height:40px;
+        margin-left:20px;
+        animation-duration:1s;
+        background:none;
+        width:320px;
+        font-size:12px;
+        line-height:40px;
+        padding-left:15px;
+    }
+    .class-27
+    {
+        border-color:#EEEEEE;
+        color:#333333;
+        outline:none;
+        outline-offset:-1px;
+        border-width:1px;
+        border-style:none;
+        max-width:100%;
+        align-items:center;
+        flex-direction:row;
+        display:flex;
+        animation-duration:1s;
+        background-repeat:no-repeat;
+    }
+    .class-28
+    {
+        color:#333333;
+        word-wrap:break-word;
+        display:inline-block;
+        animation-duration:1s;
+        font-size:14px;
+        line-height:1.4;
+    }
+    .class-29
+    {
+        border-color:#EEEEEE;
+        color:#606266;
+        padding-right:15px;
+        box-sizing:boredr-box;
+        outline:none;
+        border-width:1px;
+        border-style:solid;
+        height:40px;
+        margin-left:20px;
+        animation-duration:1s;
+        background:none;
+        width:320px;
+        font-size:12px;
+        line-height:40px;
+        padding-left:15px;
+    }
+    .class-30
+    {
+        color:#333333;
+        outline:none;
+        outline-offset:-1px;
+        max-width:100%;
+        align-items:center;
+        flex-direction:row;
+        display:flex;
+        animation-duration:1s;
+        background-repeat:no-repeat;
+    }
+    .class-31
+    {
+        cursor:pointer;
+        color:#ffffff;
+        box-sizing:border-box;
+        height:34px;
+        background-color:#0099ff;
+        text-align:center;
+        display:inline-block;
+        animation-duration:1s;
+        border-radius:4px;
+        width:98px;
+        line-height:34px;
+        font-size:14px;
+    }
+    .class-32
+    {
+        cursor:pointer;
+        border-color:#0099FF;
+        color:#0099FF;
+        box-sizing:border-box;
+        border-width:1px;
+        border-style:solid;
+        height:34px;
+        background-color:#FFFFFF;
+        text-align:center;
+        display:inline-block;
+        margin-left:10px;
+        animation-duration:1s;
+        border-radius:4px;
+        width:98px;
+        line-height:34px;
+        font-size:14px;
+    }
+    .el-select,
+    .el-input,
+    .el-form-item,
+    .el-date-editor{
+        width: 100%;
+    }
+</style>

+ 6 - 6
src/main/webapp/templets/1/default/case-list.htm

@@ -12,27 +12,27 @@
         </div>
         <div class="ms-content-case">
             <div class="ms-content-main">
-                {ms:arclist size=6 ispaging=true}
+                <@arclist size=6 ispaging=true>
                 <div class="ms-content-main-case">
                     <div class="ms-content-main-case-img">
-                        <img src="{ms:global.host/}[field.litpic/]">
+                        <img src="${global.host}${item.litpic}">
                     </div>
                     <div class="ms-content-main-case-explain">
-                        <div class="ms-content-main-case-title">[field.title/]</div>
+                        <div class="ms-content-main-case-title">${item.title}</div>
                         <div class="ms-content-main-case-content">
                             <p class="ms-content-main-case-written">
-                                [field.content/]
+                                ${item.content}
                             </p>
                             <!-- <p class="ms-content-main-case-QRcode">
                                 <img src="./images/1471918025445.png">
                             </p> -->
                         </div>
                         <div class="ms-content-main-case-click">
-                            <a target="_blank" href="[field.source/]">点击查看</a>
+                            <a target="_blank" href="${field.source}">点击查看</a>
                         </div>
                     </div>
                 </div>
-                {/ms:arclist}
+                </@arclist>
             </div>
         </div>
         <#include "footer.htm"/>

+ 5 - 5
src/main/webapp/templets/1/default/footer.htm

@@ -3,7 +3,7 @@
         <div class="ms-footer-left">
             <div class="ms-footer-left-column">
                 <span class="ms-footer-left-column-about">
-                	<a href='{ms:global.url/}/53/index.html'>关于我们</a>
+                	<a href='${global.url}/53/index.html'>关于我们</a>
                 </span>|
                 <span class="ms-footer-left-column-course">
                 	<a target="_blank" href='http://mingsoft.net/html/1//5527/index.html#faz'>发展历程</a>
@@ -15,12 +15,12 @@
             <span class="ms-footer-left-copyright">版权所有&copy;铭飞科技有限公司2012-2018保留一切权利</span>
         </div>
         <div class="ms-footer-right">
-            <img class='ms-footer-right-img-weixin' src="{ms:global.host/}/{ms:global.style/}/images/we-chat.png">
-            <a target="_blank" href='http://tieba.baidu.com/f?kw=%E9%93%AD%E9%A3%9E%E7%A7%91%E6%8A%80&fr=index&fp=0&ie=utf-8'><img class="ms-footer-right-baidu" src="{ms:global.host/}/{ms:global.style/}/images/baidu.png"></a>
-            <a target="_blank" href='http://weibo.com/killfen'><img src="{ms:global.host/}/{ms:global.style/}/images/micro-blog.png"></a>
+            <img class='ms-footer-right-img-weixin' src="${global.host}/${global.style}/images/we-chat.png">
+            <a target="_blank" href='http://tieba.baidu.com/f?kw=%E9%93%AD%E9%A3%9E%E7%A7%91%E6%8A%80&fr=index&fp=0&ie=utf-8'><img class="ms-footer-right-baidu" src="${global.host}/${global.style}/images/baidu.png"></a>
+            <a target="_blank" href='http://weibo.com/killfen'><img src="${global.host}/${global.style}/images/micro-blog.png"></a>
         	<div class="ms-footer-right-weixin">
         		<p></p>
-        		<img alt="" src="{ms:global.host/}/{ms:global.style/}/images/weixin.jpg">
+        		<img alt="" src="${global.host}/${global.style}/images/weixin.jpg">
         	</div>
         </div>
     </div>

+ 28 - 28
src/main/webapp/templets/1/default/head-file.htm

@@ -1,36 +1,36 @@
-<title>{ms:global.name/}</title>
+<title>${global.name}</title>
 <meta charset="utf-8">
-<link rel="stylesheet" type="text/css" href="{ms:global.host/}/plugins/iconfont/1.0.0/iconfont.css" />
-<link rel="stylesheet" type="text/css" href="{ms:global.host/}/{ms:global.style/}/css/base.css">
-<link rel="stylesheet" type="text/css" href="{ms:global.host/}/{ms:global.style/}/css/index.css">
-<link rel="stylesheet" type="text/css" href="{ms:global.host/}/{ms:global.style/}/css/advice.css">
-<link rel="stylesheet" type="text/css" href="{ms:global.host/}/{ms:global.style/}/css/case-list.css">
-<link rel="stylesheet" type="text/css" href="{ms:global.host/}/{ms:global.style/}/css/about.css">
-<link rel="stylesheet" type="text/css" href="{ms:global.host/}/{ms:global.style/}/css/news-list.css">
-<link rel="stylesheet" type="text/css" href="{ms:global.host/}/{ms:global.style/}/css/news-show.css">
-<link rel="stylesheet" type="text/css" href="{ms:global.host/}/{ms:global.style/}/css/center.css">
+<link rel="stylesheet" type="text/css" href="${global.host}/plugins/iconfont/1.0.0/iconfont.css" />
+<link rel="stylesheet" type="text/css" href="${global.host}/${global.style}/css/base.css">
+<link rel="stylesheet" type="text/css" href="${global.host}/${global.style}/css/index.css">
+<link rel="stylesheet" type="text/css" href="${global.host}/${global.style}/css/advice.css">
+<link rel="stylesheet" type="text/css" href="${global.host}/${global.style}/css/case-list.css">
+<link rel="stylesheet" type="text/css" href="${global.host}/${global.style}/css/about.css">
+<link rel="stylesheet" type="text/css" href="${global.host}/${global.style}/css/news-list.css">
+<link rel="stylesheet" type="text/css" href="${global.host}/${global.style}/css/news-show.css">
+<link rel="stylesheet" type="text/css" href="${global.host}/${global.style}/css/center.css">
 
-<script src="{ms:global.host/}/plugins/jquery/1.9.1/jquery-1.9.1.js"></script>
-<script src="{ms:global.host/}/{ms:global.style/}/js/slider.js"></script>
-<script src="{ms:global.host/}/static/plugins/less/3.9.0/less.min.js"></script>
+<script src="${global.host}/plugins/jquery/1.9.1/jquery-1.9.1.js"></script>
+<script src="${global.host}/${global.style}/js/slider.js"></script>
+<script src="${global.host}/static/plugins/less/3.9.0/less.min.js"></script>
 <!--vue-懒加载-表单验证-->
-<script src="{ms:global.host/}/plugins/vue/2.6.9/vue.min.js"></script>
-<script src="{ms:global.host/}/plugins/validator/10.8.0/validator.min.js"></script>
+<script src="${global.host}/plugins/vue/2.6.9/vue.min.js"></script>
+<script src="${global.host}/plugins/validator/10.8.0/validator.min.js"></script>
 <!-- Element -->
-<link rel="stylesheet" href="{ms:global.host/}/plugins/element-ui/2.8.2/index.css">
-<script src="{ms:global.host/}/plugins/element-ui/2.8.2/index.js"></script>
+<link rel="stylesheet" href="${global.host}/plugins/element-ui/2.8.2/index.css">
+<script src="${global.host}/plugins/element-ui/2.8.2/index.js"></script>
 
-<link rel="stylesheet" type="text/css" href="{ms:global.host/}/{ms:global.style/}/css/animate.css">
-<script src="{ms:global.host/}/static/plugins/axios/0.18.0/axios.min.js"></script>
-<script src="{ms:global.host/}/static/plugins/ms/1.0.0/ms.js"></script>
-<script src="{ms:global.host/}/static/plugins/ms/1.0.0/ms.http.js"></script>
-<script src="{ms:global.host/}/static/plugins/ms/1.0.0/ms.util.js"></script>
-<script src="{ms:global.host/}/api/ms.people.min.js"></script>
-<script src="{ms:global.host/}/static/plugins/plupload/plupload.full.min.js"></script>
-<script src="{ms:global.host/}/static/plugins/qs/6.6.0/qs.min.js"></script>
-<script src="{ms:global.host/}/static/plugins/ms/1.0.0/ms.upload.js"></script>
+<link rel="stylesheet" type="text/css" href="${global.host}/${global.style}/css/animate.css">
+<script src="${global.host}/static/plugins/axios/0.18.0/axios.min.js"></script>
+<script src="${global.host}/static/plugins/ms/1.0.0/ms.js"></script>
+<script src="${global.host}/static/plugins/ms/1.0.0/ms.http.js"></script>
+<script src="${global.host}/static/plugins/ms/1.0.0/ms.util.js"></script>
+<script src="${global.host}/api/ms.people.min.js"></script>
+<script src="${global.host}/static/plugins/plupload/plupload.full.min.js"></script>
+<script src="${global.host}/static/plugins/qs/6.6.0/qs.min.js"></script>
+<script src="${global.host}/static/plugins/ms/1.0.0/ms.upload.js"></script>
 <script>
 	window.http = ms.http;
-	ms.base = "{ms:global.host/}";
-	ms.login = '{ms:global.host/}';
+	ms.base = "${global.host}";
+	ms.login = '${global.host}';
 </script>

+ 5 - 5
src/main/webapp/templets/1/default/head.htm

@@ -8,10 +8,10 @@
                 <li class="head-menu-list-li">走进铭飞
                     <ul class="head-menu-son-list">
                         <li>
-                            <a target="_blank" href='{ms:global.url/}/53/index.html'>关于我们</a>
+                            <a target="_blank" href='${global.url}/53/index.html'>关于我们</a>
                         </li>
                         <li>
-                            <a target="_blank" href='{ms:global.url/}/59/index.html'>公司动态</a>
+                            <a target="_blank" href='${global.url}/59/index.html'>公司动态</a>
                         </li>
                         <li>
                             <a target="_blank" href='http://mingsoft.net/html/1//5527/index.html#faz'>发展历程</a>
@@ -20,12 +20,12 @@
                             <a target="_blank" href='http://mingsoft.net/html/1//5527/index.html#lianx'>加入我们</a>
                         </li>
                         <li>
-                            <a target="_blank" href='{ms:global.url/}/19/141/index.html'>联系我们</a>
+                            <a target="_blank" href='${global.url}/19/141/index.html'>联系我们</a>
                         </li>
                     </ul>
                 </li>
                 <li class="head-menu-list-li">
-                    <a href='{ms:global.url/}/149/index.html'>案例</a>
+                    <a href='${global.url}/149/index.html'>案例</a>
                 </li>
                 <li class="head-menu-list-li">
                     <a target="_blank" href='http://store.mingsoft.net/mstore/index.do'>插件&模板</a>
@@ -35,7 +35,7 @@
                     </ul> -->
                 </li>
                 <li class="head-menu-list-li">
-                    <a target="_blank" href='{ms:global.url/}/19/142/index.html'>在线留言</a>
+                    <a target="_blank" href='${global.url}/19/142/index.html'>在线留言</a>
                 </li>
                 <li class="head-menu-list-li">技术支持
                     <ul class="head-menu-son-list">

+ 28 - 28
src/main/webapp/templets/1/default/index.htm

@@ -2,8 +2,8 @@
 <html>
 <head>
     <#include "head-file.htm">
-    <link rel="stylesheet" type="text/css" href="{ms:global.host/}/plugins/bootstrap/3.3.5/css/bootstrap.min.css">
-    <script type="text/javascript" src="{ms:global.host/}/plugins/bootstrap/3.3.5/js/bootstrap.min.js"></script>
+    <link rel="stylesheet" type="text/css" href="${global.host}/plugins/bootstrap/3.3.5/css/bootstrap.min.css">
+    <script type="text/javascript" src="${global.host}/plugins/bootstrap/3.3.5/js/bootstrap.min.js"></script>
     <script>
         var ms = {
             base:"http://store.mingsoft.net"
@@ -21,15 +21,15 @@
     <div id="banner_tabs" class="flexslider">
         <ul class="slides">
             <template v-for="banner in bannerList">
-                <li style="background:url({ms:global.host/}/{ms:global.style/}/images/03.jpg) no-repeat center;">
+                <li style="background:url(${global.host}/${global.style}/images/03.jpg) no-repeat center;">
                     <p class="banner_tit animated fadeInLeft">铭飞MS平台</p>
                     <p class="banner_des animated fadeInRight">MCms系统永久完整开源</p>
                 </li>
-                <li style="background:url({ms:global.host/}/{ms:global.style/}/images/03.jpg) no-repeat center;">
+                <li style="background:url(${global.host}/${global.style}/images/03.jpg) no-repeat center;">
                     <p class="banner_tit animated fadeInLeft">MStore</p>
                     <p class="banner_des animated fadeInRight">丰富强大的功能插件、海量精美的行业模板</p>
                 </li>
-                <li style="background:url({ms:global.host/}/{ms:global.style/}/images/03.jpg) no-repeat center;">
+                <li style="background:url(${global.host}/${global.style}/images/03.jpg) no-repeat center;">
                     <p class="banner_tit animated fadeInLeft">优质的服务体验</p>
                     <p class="banner_des animated fadeInRight">人工远程协助服务、永久享受更新升级</p>
                 </li>
@@ -59,23 +59,23 @@
                     <div class="tab-content">
                         <div role="tabpanel" class="tab-pane active" id="model">
                             <div style="display: none;" class="ms-loading" v-show="!loading">
-                                <img src="{ms:global.host/}/{ms:global.style/}/images/loading.gif" />
+                                <img src="${global.host}/${global.style}/images/loading.gif" />
                             </div>
                             <div class="ms-model-content" style="display: none;" v-show="loading">
                                 <template v-for="model in modelList">
                                     <div class="ms-model-list">
                                         <a class="ms-model-img" :href="model.upgraderVersionUrl" target="_blank">
-                                            <img @mouseout="imgMout()" @mouseover="imgMover()" :src="'http://store.mingsoft.net/'+model.img" onerror="this.src='{ms:global.host/}/{ms:global.style/}/images/no-data.png'" />
+                                            <img @mouseout="imgMout()" @mouseover="imgMover()" :src="'http://store.mingsoft.net/'+model.img" onerror="this.src='${global.host}/${global.style}/images/no-data.png'" />
                                         </a>
-                                        <div class="ms-model-mobile-img" v-if="model.mobileImg != '' && model.mobileImg != undefined" style="background: url({ms:global.host/}/{ms:global.style/}/images/mobile.png)">
+                                        <div class="ms-model-mobile-img" v-if="model.mobileImg != '' && model.mobileImg != undefined" style="background: url(${global.host}/${global.style}/images/mobile.png)">
                                             <div>
-                                                <img @mouseout="imgMout()" @mouseover="imgMover()" :src="'http://store.mingsoft.net/'+model.mobileImg" onerror="this.src='{ms:global.host/}/{ms:global.style/}/images/no-data.png'" />
+                                                <img @mouseout="imgMout()" @mouseover="imgMover()" :src="'http://store.mingsoft.net/'+model.mobileImg" onerror="this.src='${global.host}/${global.style}/images/no-data.png'" />
                                             </div>
                                         </div>
                                         <div class="ms-model-info">
                                             <span v-text="model.upgraderVersionName"></span>
                                             <img class="ms-model-info-img" :src="model.upgraderVersionPeopleIcon" onerror="this.src='http://cdn.mingsoft.net/global/images/msheader.png'" />
-                                            <img :src="'{ms:global.host/}/{ms:global.style/}/images/level-'+model.upgraderVersionStart+'.png'" />
+                                            <img :src="'${global.host}/${global.style}/images/level-'+model.upgraderVersionStart+'.png'" />
                                             <div class="ms-model-type">模板</div>
                                         </div>
                                     </div>
@@ -92,12 +92,12 @@
                                 <template v-for="pulg in pulgList">
                                     <div class="ms-model-list">
                                         <a class="ms-model-img" :href="pulg.upgraderVersionUrl" target="_blank">
-                                            <img :src="'http://store.mingsoft.net/'+pulg.img" onerror="this.src='{ms:global.host/}/{ms:global.style/}/images/no-data.png'" />
+                                            <img :src="'http://store.mingsoft.net/'+pulg.img" onerror="this.src='${global.host}/${global.style}/images/no-data.png'" />
                                         </a>
                                         <div class="ms-model-info">
                                             <span v-text="pulg.upgraderVersionName"></span>
                                             <img class="ms-model-info-img" :src="pulg.upgraderVersionPeopleIcon" onerror="this.src='http://cdn.mingsoft.net/global/images/msheader.png'" />
-                                            <img :src="'{ms:global.host/}/{ms:global.style/}/images/level-'+pulg.upgraderVersionStart+'.png'" />
+                                            <img :src="'${global.host}/${global.style}/images/level-'+pulg.upgraderVersionStart+'.png'" />
                                             <div class="ms-model-type">插件</div>
                                         </div>
                                     </div>
@@ -118,29 +118,29 @@
                 <div class="ms-content-case-title">
                     <div class="ms-content-case-title-words">网站案例</div>
                     <div class="ms-content-case-more">
-                        <a href='{ms:global.url/}/149/index.html'>MORE>></a>
+                        <a href='${global.url}/149/index.html'>MORE>></a>
                     </div>
                 </div>
                 <div class="ms-content-case-list">
-                    {ms:arclist typeid=149 size=6}
+                    <@arclist typeid=149 size=6>
                     <div class="ms-content-main-case">
                         <div class="ms-content-main-case-img">
-                            <img src="{ms:global.host/}[field.litpic/]">
+                            <img src="${global.host}${item.litpic}">
                         </div>
                         <div class="ms-content-main-case-explain">
-                            <div class="ms-content-main-case-title">[field.title/]</div>
+                            <div class="ms-content-main-case-title">${item.title}</div>
                             <div class="ms-content-main-case-content">
 
                                 <p class="ms-content-main-case-written">
-                                    [field.content/]
+                                    ${item.content}
                                 </p>
                             </div>
                             <div class="ms-content-main-case-click">
-                                <a target="_blank" href="[field.source/]">点击查看</a>
+                                <a target="_blank" href="${item.source}">点击查看</a>
                             </div>
                         </div>
                     </div>
-                    {/ms:arclist}
+                    </@arclist>
                 </div>
             </div>
         </div>
@@ -190,25 +190,25 @@
                 <div class="ms-content-news-main-title">
                     <div class="ms-content-news-main-title-words">公司动态</div>
                     <div class="ms-content-news-main-title-more">
-                        <a href='{ms:global.url/}/59/index.html'>MORE>></a>
+                        <a href='${global.url}/59/index.html'>MORE>></a>
                     </div>
                 </div>
                 <div class="ms-content-news-main-img-text">
-                    {ms:arclist typeid=59 size=1}
-                    <img src="{ms:global.host/}[field.litpic/]">
-                    {/ms:arclist}
+                    <@arclist typeid=59 size=1>
+                    <img src="${global.host}${item.litpic}">
+                    </@arclist>
                     <ul class="ms-content-news-main-ul">
-                        {ms:arclist typeid=59 size=6}
+                        <@arclist typeid=59 size=6>
                         <li>
-                            <a href="{ms:global.url/}[field.link/]">
+                            <a href="${global.url}${item.link}">
                                 <div class="ms-content-news-main-li-title">
                                     <!-- <span class="ms-content-news-main-li-span">·</span> -->
-                                    <span class="">[field.title/]</span>
+                                    <span class="">${item.title}</span>
                                 </div>
-                                <div class="ms-content-news-main-li-time">[field.date?string("yyyy-mm-dd")/]</div>
+                                <div class="ms-content-news-main-li-time">${item.date?string("yyyy-mm-dd")}</div>
                             </a>
                         </li>
-                        {/ms:arclist}
+                        </@arclist>
                     </ul>
                 </div>
             </div>

+ 3 - 3
src/main/webapp/templets/1/default/menu-left.htm

@@ -1,10 +1,10 @@
 <div class="ms-content-left">
     <div class="ms-content-left-title">走进铭飞</div>
     <ul class="ms-content-left-ul">
-        <a target="_blank" href='{ms:global.url/}/53/index.html'>
+        <a target="_blank" href='${global.url}/53/index.html'>
             <li>关于我们<span class="ms-content-left-li-more">></span></li>
         </a>
-        <a target="_blank" href='{ms:global.url/}/59/index.html'>
+        <a target="_blank" href='${global.url}/59/index.html'>
             <li>公司动态<span class="ms-content-left-li-more">></span></li>
         </a>
         <a target="_blank" href='http://mingsoft.net/html/1//5527/index.html#faz'>
@@ -13,7 +13,7 @@
         <a target="_blank" href='http://mingsoft.net/html/1//5527/index.html#lianx'>
             <li>加入我们<span class="ms-content-left-li-more">></span></li>
         </a>
-        <a target="_blank" href={ms:global.url/}/19/141/index.html>
+        <a target="_blank" href=${global.url}/19/141/index.html>
             <li>联系我们<span class="ms-content-left-li-more">></span></li>
         </a>
     </ul>

+ 5 - 5
src/main/webapp/templets/1/default/news-list.htm

@@ -21,15 +21,15 @@
 
                     <div class="ms-content-main-div">
                         <ul class="ms-content-main-ul">
-                            {ms:arclist size=10 ispaging=true}
+                            <@arclist size=10 ispaging=true>
                             <li>
-                                <a href="{ms:global.url/}[field.link/]">
+                                <a href="${global.url}${item.link}">
                                     <!-- <span class="ms-content-main-li-span">·</span> -->
-                                    <span class="ms-content-main-li-title">[field.title/]</span>
-                                    <span class="ms-content-main-li-time">[field.date?string("yyyy-MM-dd")/]</span>
+                                    <span class="ms-content-main-li-title">${item.title}</span>
+                                    <span class="ms-content-main-li-time">${item.date?string("yyyy-MM-dd")}</span>
                                 </a>
                             </li>
-                            {/ms:arclist}
+                            </@arclist>
                         </ul>
                     </div>
                 </div>

+ 26 - 26
src/main/webapp/templets/1/default/news-show.htm

@@ -2,13 +2,13 @@
 <html>
     <head>
         <#include "head-file.htm">
-        <link rel="stylesheet" type="text/css" href="{ms:global.host/}/{ms:global.style/}/css/jquery.sinaemotion.css" />
-        <script type="text/javascript" src="{ms:global.host/}/{ms:global.style/}/js/jquery.sinaEmotion.js"></script>
+        <link rel="stylesheet" type="text/css" href="${global.host}/${global.style}/css/jquery.sinaemotion.css" />
+        <script type="text/javascript" src="${global.host}/${global.style}/js/jquery.sinaEmotion.js"></script>
     </head>
 
     <body>
         <#include "head.htm">
-        <div class="ms-banner" style="background:url({ms:global.host/}/{ms:global.style/}/images/news2.png) no-repeat center;">
+        <div class="ms-banner" style="background:url(${global.host}/${global.style}/images/news2.png) no-repeat center;">
             <p class="banner_tit_other animated fadeInLeft">公司动态</p>
             
             <p class="banner_tit_other_des animated fadeInRight">Our company</p>
@@ -18,23 +18,23 @@
                 <#include "menu-left.htm">
                 <div class="ms-content-right">
                     <div class="ms-content-right-position">
-                        <a href="{ms:global.host/}">首页</a>
+                        <a href="${global.host}">首页</a>
                         <span>></span>
-                        <a href="{ms:field.typelink/}">{ms:field.typetitle/}</a>
+                        <a href="${field.typelink}">${field.typetitle}</a>
                     </div>
                     <div class="ms-content-right-main">
                         <div class="ms-content-right-main-title" id="ms-content-right-main-title">
-                            <div class="ms-content-right-main-title-div">{ms:field.title/}</div>
+                            <div class="ms-content-right-main-title-div">${field.title}</div>
                             <div class="ms-content-right-main-icon">
                                 <div class="ms-content-icon-left">
-                                    <div class="ms-content-right-main-icon-source">来源:{ms:field.source/}
+                                    <div class="ms-content-right-main-icon-source">来源:${field.source}
                                         <span class="ms-content-right-vertical">|</span>
                                     </div>
-                                    <div class="ms-content-right-main-icon-time">时间:{ms:field.date?string("yyyy-MM-dd")/}</div>
+                                    <div class="ms-content-right-main-icon-time">时间:${field.date?string("yyyy-MM-dd")}</div>
                                 </div>
                                 <div class="ms-content-icon-right">
                                     <div class="ms-content-right-main-icon-clicks"></div>
-                                    <div class="ms-content-right-main-icon-num">{ms:field.hit/}
+                                    <div class="ms-content-right-main-icon-num">${field.hit}
                                         <span class="ms-content-right-vertical">|</span>
                                     </div>
                                     <div class="ms-content-right-main-icon-comment"></div>
@@ -48,7 +48,7 @@
                             </div>
                         </div>
                         <div class="ms-content-right-main-content">
-                            <p>{ms:field.content/}</p><br/>
+                            <p>${field.content!''}</p><br/>
                         </div>
                         <div class="metfield">
 					        <p>上一篇:<a href="{ms:global.url/}{ms:pre.link/}">{ms:pre.title/}</a></p>
@@ -68,13 +68,13 @@
                         </div>
                         <div class="ms-content-right-comment-list">
                             <div class="ms-content-right-comment-list-no-comment" style="display: none;" v-show="commentsList.length == 0">
-                                <img src="{ms:global.host/}/{ms:global.style/}/images/no-comment.png">
+                                <img src="${global.host}/${global.style}/images/no-comment.png">
                             </div>
                             <template v-for="(comments,index) in commentsList">
                                 <div class="ms-content-right-comment-list-div" v-if="index <= listNum">
                                     <div class="ms-content-right-comment-list-left">
                                         <div class="ms-content-right-comment-list-portrait">
-                                            <img :src="'{ms:global.host/}'+ comments.puIcon" onerror="this.src='http://cdn.mingsoft.net/global/images/msheader.png'">
+                                            <img :src="'${global.host}'+ comments.puIcon" onerror="this.src='http://cdn.mingsoft.net/global/images/msheader.png'">
                                         </div>
                                         <div class="ms-content-right-comment-list-content">
                                             <div class="ms-content-right-comment-list-name" v-text="comments.puNickname"></div>
@@ -96,7 +96,7 @@
                                     没有更多评论
                                 </div>
                                 <div class="ms-content-right-comment-list-div-load" style="display: none;">
-                                    <img src="{ms:global.host/}/{ms:global.style/}/images/loading.gif">
+                                    <img src="${global.host}/${global.style}/images/loading.gif">
                                 </div>
                             </div>
                         </div>
@@ -131,8 +131,8 @@
                     if(obj.isAttention == false) {
                         $.ajax({
                             type: "POST",
-                            data: "basicAttentionBasicId={ms:field.id/}&basicAttentionType=2",
-                            url: "{ms:global.host/}/people/attention/save.do",
+                            data: "basicAttentionBasicId=${field.id}&basicAttentionType=2",
+                            url: "${global.host}/people/attention/save.do",
                             success: function(msg) {
                                 if(msg.result) {
                                     obj.attentionNum++;
@@ -146,8 +146,8 @@
                     } else {
                         $.ajax({
                             type: "POST",
-                            data: "basicId={ms:field.id/}&basicAttentionType=2",
-                            url: "{ms:global.host/}/people/attention/delete.do",
+                            data: "basicId=${field.id}&basicAttentionType=2",
+                            url: "${global.host}/people/attention/delete.do",
                             success: function(msg) {
                                 if(msg.result) {
                                     obj.attentionNum--;
@@ -165,8 +165,8 @@
                     var obj = this;
                     $.ajax({
                         type: "POST",
-                        data: "commentBasicId={ms:field.id/}",
-                        url: "{ms:global.host/}/comment/list.do",
+                        data: "commentBasicId=${field.id}",
+                        url: "${global.host}/comment/list.do",
                         success: function(msg) {
                             obj.commentsList = msg.list;
                         }
@@ -184,8 +184,8 @@
                     var obj = this;
                     $.ajax({
                         type: "POST",
-                        data: "commentContent=" + $("textarea[name=comments]").val() + "&isCode=false&commentBasicId={ms:field.id/}",
-                        url: "{ms:global.host/}/people/comment/save.do",
+                        data: "commentContent=" + $("textarea[name=comments]").val() + "&isCode=false&commentBasicId=${field.id}",
+                        url: "${global.host}/people/comment/save.do",
                         success: function(msg) {
                             if(msg.result) {
                                 alert("评论成功");
@@ -207,7 +207,7 @@
                 //登录状态
                 $.ajax({
                     type: "POST",
-                    url: "{ms:global.host/}/checkLoginStatus.do",
+                    url: "${global.host}/checkLoginStatus.do",
                     success: function(msg) {
                         obj.loginStatus = msg.result;
                     }
@@ -216,8 +216,8 @@
                 //关注数
                 $.ajax({
                     type: "POST",
-                    data: "basicAttentionBasicId={ms:field.id/}&basicAttentionType=2",
-                    url: "{ms:global.host/}/attention/count.do",
+                    data: "basicAttentionBasicId=${field.id}&basicAttentionType=2",
+                    url: "${global.host}/attention/count.do",
                     success: function(msg) {
                         obj.attentionNum = msg;
                     }
@@ -225,8 +225,8 @@
                 //是否关注了
                 $.ajax({
                     type: "POST",
-                    data: "basicAttentionBasicId={ms:field.id/}&basicAttentionType=2",
-                    url: "{ms:global.host/}/people/attention/isExists.do",
+                    data: "basicAttentionBasicId=${field.id}&basicAttentionType=2",
+                    url: "${global.host}/people/attention/isExists.do",
                     success: function(msg) {
                         obj.isAttention = msg.result;
                     }