发布帖子(十一)
作者:互联网
在帖子标题上增加访问详情页面的链接
一、业务层
DiscussPostService
添加根据id查找帖子的方法。
public interface DiscussPostService extends IService<DiscussPost> {
//...
DiscussPost findDiscussPostById(int id);
}
DiscussPostServiceImpl
通过 MyBatis Plus 实现。
@Service
public class DiscussPostServiceImpl extends ServiceImpl<DiscussPostMapper, DiscussPost>
implements DiscussPostService{
@Override
public DiscussPost findDiscussPostById(int id) {
return getById(id);
}
}
二、表现层
将帖子内容放到模板中。
@Controller
@RequestMapping("/discuss")
public class DiscussPostController implements CommunityConstant {
// ...
@RequestMapping(path = "/detail/{discussPostId}", method = RequestMethod.GET)
public String getDiscussPost(@PathVariable("discussPostId") int discussPostId, Model model) {
// 帖子
DiscussPost post = discussPostService.findDiscussPostById(discussPostId);
model.addAttribute("post", post);
// 作者
User user = userService.findUserById(post.getUserId());
model.addAttribute("user", user);
// 将来处理评论
return "/site/discuss-detail";
}
}
三、模板处理
1.给帖子标题添加超链接
index.html
<a th:href="@{|/discuss/detail/${map.post.id}|}" th:utext="${map.post.title}">帖子标题</a>
鼠标放在标题上时会显示入下的超链接
2.处理帖子详情页
discuss-detail.html
<!-- 无关内容省略-->
<span th:utext="${post.title}">帖子标题</span>
<img th:src="${user.headerUrl}" class="align-self-start mr-4 rounded-circle user-header" alt="用户头像" >
<div class="mt-0 text-warning" th:utext="${user.username}">用户名</div>
<b th:text="${#dates.format(post.createTime,'yyyy-MM-dd HH:mm:ss')}">创建时间</b>
<div class="mt-4 mb-3 content" th:utext="${post.content}">帖子内容</div>
标签:十一,discussPostId,id,帖子,发布,post,标题,public 来源: https://www.cnblogs.com/dalelee/p/16610257.html