com.alibaba
fastjson
1.2.79
//获取Json字符串
public static String getJSONString(int code, String msg, Map map)
{
JSONObject jsonObject=new JSONObject();
jsonObject.put("code",code);
jsonObject.put("msg",msg);
if(map!=null)
{
for(String key:map.keySet())
{
jsonObject.put(key,map.get(key));
}
}
return jsonObject.toJSONString();
}
public static String getJSONString(int code, String msg)
{
return getJSONString(code,msg,null);
}
public static String getJSONString(int code, Map map)
{
return getJSONString(code,null,map);
}
insert into discuss_post ( )
values(#{user_id}, #{title}, #{content}, #{type}, #{status}, #{create_time}, #{comment_count}, #{score})
//增加帖子
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(sensitiveFilter.filter(discussPost.getTitle()));
discussPost.setContent(sensitiveFilter.filter(discussPost.getContent()));
return discussPostMapper.insertDiscussPost(discussPost);
}
//发布帖子
@RequestMapping(value = "/discuss/add",method = RequestMethod.POST)
@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,"发布成功!");
}
采用jquery发送异步请求
$.post(有三个参数 1、访问路径 2、 提交数据 3、 回调函数 服务器做出响应 把返回的数据传给data
把字符串转为js对象 浏览器转化为js对象处理
点击发布的时候调用方法 publish()
通过id获取标题和内容
data 保存回调函数处理服务器响应完毕后返回的结果
成功了刷新页面 判断JSON返回的code是否等于0
$(function(){
$("#publishBtn").click(publish);
});
function publish() {
//隐藏立即发布按钮
$("#publishModal").modal("hide");
//获取标题和内容
var title=$("#recipient-name").val();
var content=$("#message-text").val();
//发送异步请求 post方式
$.post(
CONTEXT_PATH+"/discuss/add",
{"title":title,"content":content},
function (data) {
data=$.parseJSON(data);
//在提示框中显示返回信息
$("#hintBody").text(data.msg);
//显示提示框 2秒后消失
$("#hintModal").modal("show");
setTimeout(function(){
$("#hintModal").modal("hide");
//刷新页面
if(data.code==0){
window.location.reload();
}
}, 2000);
}
);
}
编写DiscussPostMapper,DiscussPostService,DiscussPostController
//根据id查询帖子
@RequestMapping(value = "/discuss/detail/{discussPostId}",method = RequestMethod.GET)
public String getDiscussPost(@PathVariable("discussPostId") int id, Model model)
{
DiscussPost discussPost = discussPostService.selectPostById(id);
model.addAttribute("post",discussPost);
//通过userid查找对应的用户
User user = userService.queryUserById(discussPost.getUserId());
model.addAttribute("user",user);
return "/site/discuss-detail";
}
-处理静态资源的访问路径
-复用index.html的header
-显示标题,作者,发布时间,帖子正文等内容
发布于 2019-04-15 15:32:18