1.引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.80</version>
</dependency>
2.service层对帖子内容进行处理
@Override
public int addDiscussPost(DiscussPost discussPost) {
if (discussPost == null) throw new IllegalArgumentException("参数内容不得为空");
//对特殊字符进行转义
discussPost.setTitle(HtmlUtils.htmlEscape(discussPost.getTitle()));
discussPost.setContent((HtmlUtils.htmlEscape(discussPost.getContent())));
//对敏感词进行过滤
discussPost.setTitle(sensitiveWordsFilter.filter(discussPost.getTitle()));
discussPost.setContent(sensitiveWordsFilter.filter(discussPost.getContent()));
return discussPostMapper.insertDiscussPost(discussPost);
}
3.获得JSON字符串工具及重载
public static String getJSONString(int code, String msg, Map<String, Object> map) {
JSONObject json = new JSONObject();
json.put("code", code);
json.put("msg", msg);
if (map != null) {
for (String key : map.keySet()) {
json.put("key", map.get(key));
}
}
return json.toJSONString();
}
public static String getJSONString(int code, String msg) {
return getJSONString(code, msg, null);
}
public static String getJSONString(int code) {
return getJSONString(code, null, null);
}
4.controller层
@PostMapping("/add")
@ResponseBody
public String addDiscussPost(String title, String content) {
User user = hostHolder.getUser();
if (user == null) {
return CommunityUtil.getJSONString(403, "您还未登录!");
}
DiscussPost discussPost = new DiscussPost();
discussPost.setUserId(user.getId());
discussPost.setTitle(title);
discussPost.setContent(content);
discussPost.setCreateTime(new Date());
discussPostService.addDiscussPost(discussPost);
return CommunityUtil.getJSONString(0,"发布成功!");
}
如何用ThreadLocal(HostHolder工具)保存用户登录数据?
5.前端js
$(function(){
$("#publishBtn").click(publish);
});
function publish() {
$("#publishModal").modal("hide");
//获取标题和内容
var title = $("#recipient-name").val();
var content = $("#message-text").val();
//发送异步请求
$.post(
//发送路径
CONTEXT_PATH + "/discuss/add",
//发送内容
{"title":title,"content":content},
//回调函数
function (data) {
data = $.parseJSON(data);
//在提示框中显示返回信息
$("#hintBody").text(data.msg);
//显示提示框
$("#hintModal").modal("show");
setTimeout(function(){
$("#hintModal").modal("hide");
// 刷新页面
if(data.code == 0) {
window.location.reload();
}
}, 2000);
}
);
}