其他分享
首页 > 其他分享> > 发布帖子(十一)

发布帖子(十一)

作者:互联网

在帖子标题上增加访问详情页面的链接

一、业务层

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