动态模板参数传递及使用

动态模板传参比较简单,类似其他技术动态传递参数一样,只要请求这个模板时,后面加"?参数名=参数值&参数名2=参数值2"

因为安全需要及缓存控制需要,publiccms的站台站点模板需要在模板元数据设置可接受参数

image.png

参数类型有文本、数字、多行文本、内容、分类、用户等。选择文本时,系统将自动处理该字段中的换行符等;数字则转换为数字类型,转换失败时页面请求返回404;选择多行文本则对参数不做任何处理;选择内容时,自动查询参数对应的内容实体,当实体不存在、已禁用、非本站的实体时,页面请求返回404;选择分类或者用户时处理逻辑和内容类似;

名称为改参数在url中的名称,勾选必填则必须传递有效的参数,否则将返回404;

别名为在模板中变量的名称,该参数为空时,直接使用参数名称当作变量名称;

勾选数组后,在模板中该变量将以数组形式存在,可以传递多个同名参数来传递多个变量 ;

image.png

例如动态模板content.html元数据设置允许动态访问:

image.png

动态请求地址:

http://localhost:8080/publiccms/content.html?id=1&pageIndex=2&tagIds=1&tagIds=2&tagIds=3

或REST风格请求地址:

http://localhost:8080/publiccms/content/1_2?tagIds=1&tagIds=2&tagIds=3

在模板中使用这些变量

${pageIndex} 或 <@_contentList pageIndex=pageIndex></@_contentList> 

绿色pageIndex为url传参pageIndex转换为数字后的变量,红色pageIndex为指令参数名

${content.title!}

content为url传参id查询得到的内容实体

<#if tagIds?has_content><#list tagIds as t>${t}<#sep>,</#list></#if>

tagIds为url传参tagIds转换为数组后的结果


保存页面 指令函数手册 数据结构 JAVA API 更多文档

0条评论
发表评论