<div class="m-container-small m-padded-tb-big" style="height: 800px!important;">
<div class="ui container">
<div class="ui top attached padded segment">
<div class="ui middle aligned two column grid">
<div class="column">
<h3 class="ui teal header">归档</h3>
</div>
<div class="right aligned column">
共 <h2 class="ui orange header m-inline-block m-text-thin" th:text="${blogCount}"> 1 </h2> 篇博客
</div>
</div>
</div>
<!--获取年份和对应的博客列表,依次遍历取出-->
<th:block th:each="item : ${archiveMap}">
<!--key就是年份-->
<h3 class="ui center aligned header" th:text="${item.key}">2017</h3>
<div class="ui fluid vertical menu">
<!--value是博客列表,需要遍历一次取出每一篇-->
<a href="#" th:href="@{/blog/{id}(id=${blog.id})}" target="_blank" class="item" th:each="blog : ${item.value}">
<span>
<i class="mini teal circle icon"></i>
<!--博客标题-->
<span th:text="${blog.title}">关于刻意练习的清单</span>
<!--博客更新时间-->
<div class="ui teal basic left pointing label m-padded-mini " th:text="${#dates.format(blog.updateTime,'MMMdd')}">9月03</div>
</span>
<!--博客标签-->
<div class="ui orange basic left pointing label m-padded-mini " th:text="${blog.flag}">原创</div>
</a>
</div>
</th:block>
</div>
</div>
ArchiveShowController
@Controller
public class ArchiveShowController {
@Autowired
private BlogService blogService;
@GetMapping("/archives")
public String archives(Model model) {
model.addAttribute("archiveMap", blogService.archiveBlog());
model.addAttribute("blogCount", blogService.countBlog());
return "archives";
}
}
BlogServiceImpl
@Service
public class BlogServiceImpl implements BlogService {
@Autowired
private BlogRepository blogRepository;
@Override
public Map<String, List<Blog>> archiveBlog() {
List<String> years = blogRepository.findGroupYear();
Map<String, List<Blog>> map = new HashMap<>();
for (String year : years) {
map.put(year, blogRepository.findByYear(year));
}
return map;
}
}