| 返回值调用说明 | |
|---|---|
| 说明 | 示例 |
| 布局类型为'默认页'或'更多'的返回值可以直接调用 | |
| 布局类型为'更多'的返回值和'默认页'更多的返回值相同 | |
| '布局 -- 版块'的调用方式为'引用代码'时,版块代码块必须由<@function></@function>标签包裹 | |
| '布局 -- 版块'的调用方式为'调用对象'时,对象代码块必须由<@object action=""></@object>标签包裹 | |
| '布局 -- 版块'的调用方式为'引用代码'时,引入本代码块的标签为<@include action=""/> | |
| 公共对象 | ||
|---|---|---|
| 变量 | 类型 | 说明 |
| baseURL | String | 系统路径 |
| commonPath | String | 资源路径 |
| contextPath | String | 系统虚拟目录 |
| suffix | String | 站点后缀名 |
| templateDir | String | 模板目录名称 |
| title | String | 站点名称 |
| keywords | String | 站点关键词 |
| description | String | 站点描述 |
| systemUser | AccessUser | 登录用户 |
| baseURI | String | 系统资源标识符 |
| token | String | 令牌 |
| identificationNumber | String | 识别号:用来区别每次请求 |
| weixin_oa_appid | String | 微信公众号应用唯一标识 |
| fileStorageSystem | int | 文件存储系统 0.本地系统 10.SeaweedFS 20.MinIO 30.阿里云OSS |
| 用户 AccessUser | |||
|---|---|---|---|
| 变量 | 类型 | 说明 | |
| id | long | Id | |
| userName | String | 会员用户名 | |
| account | String | 账号 | |
| nickname | String | 呢称 | |
| avatarPath | String | 头像路径 | 页面上显示200*200头像示例${accessUser.avatarPath}${accessUser.avatarName} 显示100*100头像示例${accessUser.avatarPath}100x100/${accessUser.avatarName} |
| avatarName | String | 头像名称 | |
| openId | String | 第三方用户的唯一标识 例如微信的openid | |
| loginInterface | Integer | 登录接口 0.本地 10.微信 50.其他开放平台 | |
| 模板引擎内置函数 | ||
|---|---|---|
| 参数 | 说明 | |
| List集合 |
<#list sequence as item>
</#list> |
遍历集合 |
|
${item_index} |
当前迭代项在所有迭代项中的位置 | |
|
${item_has_next} |
用于判断当前迭代项是否是所有迭代项中的最后一项 | |
| sequence?first | 获取集合第一个元素 | |
| sequence?last | 获取集合最后一个元素 | |
| sequence?size | 获取队列长度 | |
| Map集合 |
<#list hash as key, value>
</#list> |
遍历集合 |
|
${key} |
获取集合的键 | |
|
${value} |
获取集合的值 | |
| 模板引擎比较符号 | ||
|---|---|---|
| 参数 | 说明 | |
| lt | 小于( < ) | |
| gt | 大于( > ) | |
| lte | 小于或等于( <= ) | |
| gte | 大于或等于( >= ) | |
| 模板引擎判断空值 | ||
|---|---|---|
| 参数 | 说明 | 示例 |
| ?? | 空值判断 |
当服务器返回Map变量时不能先定义变量再判断,例如 <#assign error = returnValue['error']> <#if error?? && error?size gt 0> <#list returnValue['error'] as key, value> ${value} </#list> <#else> 没有可以领取的优惠券 </#if> 以上的写法会抛出错误 |
| ?size | 集合大小判断 | |
| Ajax方式请求/返回 处理 | ||
|---|---|---|
| 参数 | 说明 | |
| 请求 | 自定义请求头 协议头:X-Requested-With 值:XMLHttpRequest |
zepto.js和jquery.js等前端框架默认包含此参数
|
| 返回 | 400状态码 | 表示请求错误 |
|
403状态码 |
权限不足 | |
|
508状态码 |
服务器处理请求时检测到一个无限循环。当用户未登陆时在登录页面/login使用Ajax请求/user/开头的URL,会出现此错误 | |
|
响应头jumpPath |
值为登录页路径。未登录时访问登录页面会返回此参数值
|
|
| 移动端统计访问量 | ||
|---|---|---|
| 请求路径 | statistic/add.htm | |
| 请求方式 | GET | |
| 请求参数 | 当前访问页面URL |
变量:url 类型:String 是否必填:是 |
| 上一访问页面URL |
变量:referrer 类型:String 是否必填:否 |
|
| 提交返回 | 空字符串 | |
| 获取短信验证码 - AJAX方式 | ||
|---|---|---|
| 请求路径 | smsCode.htm | |
| 请求方式 | POST | |
| 自定义请求头 | 协议头:X-Requested-With 值:XMLHttpRequest | |
| 请求参数 | 参数表 | |
| 提交返回 | JSON格式值 类型:Map<String,Object> | 键参数:success 值内容说明:成功返回true 失败返回false 值类型:String |
| 键参数:error 值内容说明:错误值集合 值类型:Map<String,String> |
||
| 键参数:captchaKey 值内容说明:验证码编号 success为false时有值 |
||
| 提交'获取短信验证码'参数 | |||
|---|---|---|---|
| 参数 | 类型 | 是否必填 | 说明 |
| mobile | String | 是 | 手机号 |
| module | String | 是 | 模块 100.注册 200.登录 300.找回密码 |
| captchaKey | String | 是 | 验证码编号 |
| captchaValue | String | 是 | 验证码值 同一编号验证码每分钟提交次数不能超过60次,超出时验证码图片返回空字符 |
| token | String | 是 | 令牌 |
| 获取短信验证码 错误值 error | ||
|---|---|---|
| 变量 | 类型 | 说明 |
| token | String | 令牌错误 |
| captchaValue | String | 验证码错误 |
| mobile | String | 手机号 |
| smsCode | String | 手机验证码 |
| message | String | 获取短信验证码 |
| 基本信息 | ||
|---|---|---|
| 请求路径 | baseInfo.htm | |
| 请求方式 | GET | |
| 提交返回 | JSON格式值 类型:Map<String,Object> | 键参数:title 值内容说明:站点名称 值类型:String |
| 键参数:keywords 值内容说明:站点关键词 值类型:String |
||
| 键参数:description 值内容说明:站点描述 值类型:String |
||
| 键参数:baseURL 值内容说明:系统路径 值类型:String |
||
| 键参数:commonPath 值内容说明:资源路径 值类型:String |
||
| 键参数:contextPath 值内容说明:系统虚拟目录 值类型:String |
||
| 键参数:templateDir 值内容说明:模板目录名称 值类型:String |
||
| 键参数:systemUser 值内容说明:登录用户 值类型:AccessUser |
||
| 键参数:baseURI 值内容说明:系统资源标识符 值类型:String |
||
| 键参数:fileStorageSystem 值内容说明:文件存储系统 0.本地系统 10.SeaweedFS 20.MinIO 30.阿里云OSS 值类型:Integer |
||
| 键参数:supportAccessDevice 值内容说明:支持访问设备 1.自动识别终端 2.电脑端 3.移动端 值类型:Integer |
||
| 键参数:weixin_oa_appid 值内容说明:微信公众号appid 值类型:String |
||
| 会话续期 | ||
|---|---|---|
| 请求路径 | refreshToken.htm | |
| 请求方式 | POST | |
| 提交返回 | JSON格式值 类型:Map<String,Object> | 键参数:accessToken 值内容说明:访问令牌 值类型:String |
| 键参数:refreshToken 值内容说明:刷新令牌 值类型:String |
||
| 键参数:systemUser 值内容说明:登录用户 值类型:AccessUser |
||
| 恢复微信浏览器会话 | ||
|---|---|---|
| 请求路径 | recoverWeChatBrowserSession.htm | |
| 请求方式 | POST | |
| 提交返回 | JSON格式值 类型:Map<String,Object> | 键参数:accessToken 值内容说明:访问令牌 值类型:String |
| 键参数:refreshToken 值内容说明:刷新令牌 值类型:String |
||
| 键参数:systemUser 值内容说明:登录用户 值类型:AccessUser |
||
| 键参数:openId 值内容说明:用户的唯一标识 每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同 值类型:String |
||
| 注意事项 | ||
|---|---|---|
| JavaScript提交参数除密码框值外建议都用encodeURIComponent()函数进行编码 | ||
| 因为JavaScript中的数字类型不能包含所有的java long值,所以JSON返回值中含有Long都转为String类型 | ||
| Freemarker模板不支持直接输出布尔类型(boolean),布尔类型对象输出要使用内建函数c将布尔值转换为字符串;例如布尔类型${formCaptcha.showCaptcha}要写成${formCaptcha.showCaptcha?c}才能正确显示;比较${formCaptcha.showCaptcha?c == 'true'} | ||
| 因为手机版采用单页应用设计,框架不支持加上网页后缀,建议电脑版网页链接不要加上后缀(.htm),让手机版和网页版URL保持一致 | ||
| 前后端分离模板使用localStorage存储Token时,ajax发送header需要加上Authorization属性验证权限,值格式为“Bearer 访问令牌,刷新令牌”。例如:Authorization: Bearer a7f9ffe9b01c467ea9b1dccfcf5e6951,1024d6e2c9394b489d384a5867620a07 | ||