通常模版都是预定义的(搜索页、TAGS页、登录页)或者与具体数据相关(如栏目、文档)。
如果需要一个自由的、不依赖具体数据的页面,就可以使用自由模版。还可以通过 ajax 访问自由模板,实现在静态页中动态显示登录状态。
Controller:com.ujcms.cms.core.web.frontend.AppController.app()。
访问地址:/app/{template}。template 参数是必须的。例如http://localhost:8080/app/articles。
模版规则:app_{template}.html。对应请求中的 template 参数,解析相应的模版。例如/templates/1/default/app_articles.html。
模版中可以使用 site user 等通用默认对象,可以通过标签获取需要的数据。
还可以在URL地址中传递参数(如/app/{template}?lastArticleDate={lastArticleDate}),例如http://localhost:8080/app/articles?lastArticleDate=2020-10-01。在模版中通过Param可以获取参数值(如${Param.lastArticleDate!}),再配合标签就可以获取到特定的数据。如:
[#escape x as (x)!?html]
[@ArticleList channel='news' isIncludeSubChannel='true' Q_LT_publishDate_DateTime=Params.lastArticleDate! limit='10' orderBy='publishDate_desc, id_desc'; list]
[#list list as bean]
${bean.title}
[/#list]
[/@ArticleList]
[/#escape]除了可以直接用 URL 地址访问模板,也可以使用 ajax 获取内容:
<div id="articleList"></div>
<script>
function appendArticles() {
axios.get('${dy}/app/articles', {params: {"lastArticleDate": "2020-10-01"}}).then(function (response) {
if (response.data) {
$('#articleList').append(response.data);
}
});
}
</script>
