页面访问
请求路径 | user/control/privateMessageChatList.htm
请求方式 | GET
请求参数 | 页码 | 变量：page 类型：Integer 是否必填：否
对方用户名称 | 变量：friendUserName 类型：String 是否必填：是
返回值 | 私信分页 | 变量：pageView 类型：PageView
用户 | 变量：chatUser 类型：User

页面访问 - AJAX方式
请求路径 | user/control/privateMessageChatList.htm
请求方式 | GET
自定义请求头 | 协议头：X-Requested-With 值：XMLHttpRequest
请求参数 | 页码 | 变量：page 类型：Integer 是否必填：否
对方用户名称 | 变量：friendUserName 类型：String 是否必填：是
请求成功返回 | JSON格式值 类型:Map<String,Object> | 键参数：pageView 值内容说明：私信分页 值类型：PageView
键参数：chatUser 值内容说明：用户 值类型：User

分页 PageView
变量 | 类型 | 说明
--- | --- | ---
records | List<PrivateMessage> | 数据展示列表
pageIndex | PageIndex | 页码索引
totalpage | long | 总页数
maxresult | long | 每页显示记录数
currentpage | long | 当前页
pagecount | long | 页码显示总数
onUrl | String | 上一页URL
nextUrl | String | 下一页URL

分页索引 PageIndex
变量 | 类型 | 说明
--- | --- | ---
startindex | long | 分页开始索引
endindex | long | 分页结束索引

私信 PrivateMessage
变量 | 类型 | 说明
--- | --- | ---
id | String | Id
friendUserId | Long | 私信对方用户Id
friendUserName | String | 私信对方用户名称
friendAccount | String | 私信对方账号
friendAvatarPath | String | 私信对方头像路径 | 页面上显示200*200头像示例${privateMessage.friendAvatarPath}${privateMessage.friendAvatarName} 显示100*100头像示例${privateMessage.friendAvatarPath}100x100/${privateMessage.friendAvatarName}
friendAvatarName | String | 私信对方头像名称
senderUserId | Long | 发送者用户Id
senderAccount | String | 发送者账号
senderAvatarPath | String | 发送者头像路径 | 页面上显示200*200头像示例${privateMessage.senderAvatarPath}${privateMessage.senderAvatarName} 显示100*100头像示例${privateMessage.senderAvatarPath}100x100/${privateMessage.senderAvatarName}
senderAvatarName | String | 发送者头像名称
messageContent | String | 消息内容；本字段在存入数据库时已进行安全过滤，可以加上<#noescape></#noescape>标签关闭转义，以输出html标签
status | Integer | 消息状态 10:未读 20:已读
sendTime | Date | 发送时间
readTime | Date | 阅读时间

用户 chatUser
变量 | 类型 | 说明
--- | --- | ---
id | long | Id
userName | String | 会员用户名
account | String | 账号
nickname | String | 呢称
registrationDate | Date | 注册日期
gradeId | Integer | 等级Id
gradeName | String | 会员等级

## 示例

<#-- 对方用户 --> 与<a href="user/control/home?userName=${chatUser.userName}" target="_blank"> ${chatUser.account} </a>的对话 <#-- 私信 --> <#if pageView.records?exists && pageView.records?size gt 0 > <#list pageView.records as privateMessage> <#-- 发送者账号 --> ${privateMessage.senderAccount} <#-- 阅读时间 --> ${privateMessage.readTime} </#list> </#if> <#if !pageView.records?exists || pageView.totalrecord == 0 > 还没有私信 </#if>

提交 删除私信 - 默认方式
请求路径 | user/control/deletePrivateMessage.htm
请求方式 | POST
请求参数 | 参数表
提交成功返回 | 默认跳转到jump模板页显示提交成功信息；跳转路径参数jumpUrl有值时按参数值路径跳转
提交失败返回 | 跳转到message模板页显示提示信息

提交 删除私信 - AJAX方式
请求路径 | user/control/deletePrivateMessage.htm
请求方式 | POST
自定义请求头 | 协议头：X-Requested-With 值：XMLHttpRequest
请求参数 | 参数表
提交返回 | JSON格式值 类型:Map<String,Object> | 键参数：success 值内容说明：成功返回true 失败返回false 值类型：String
键参数：error 值内容说明：错误值集合 值类型：Map<String,String>

删除私信 错误值 error
变量 | 类型 | 说明
--- | --- | ---
privateMessage | String | 私信错误
token | String | 令牌错误

提交'删除私信'参数
参数 | 类型 | 是否必填 | 说明
--- | --- | --- | ---
friendUserName | Long | 是 | 对方用户名称
token | String | 是 | 令牌
jumpUrl | String | 否 | '提交表单 - 默认方式'提交成功后跳转路径,不填写默认跳转到表单提交页；参数必须经过encodeBase64URL编码后才能提交。例${encodeBase64URL('/index')}

## 提交 删除私信 示例

<#-- 引入tool.js文件 并且页头<head>标签上加入<meta name="csrfToken" content="${token}"/>标签 --> <script language="javascript" type="text/javascript"> //删除私信 function deletePrivateMessage(friendUserName){ var parameter = "";//URI参数 parameter += "&friendUserName="+friendUserName; //从meta标签获取令牌 parameter += "&token="+getCsrf(); //删除第一个&号,防止因为多了&号而出现警告: Parameters: Invalid chunk ignored.信息 if(parameter.indexOf("&") == 0){ parameter = parameter.substring(1,parameter.length); } //下一步用ajax方式将参数提交到user/control/deletePrivateMessage.htm } </script>