diff --git a/src/main/java/run/halo/app/controller/content/ContentFeedController.java b/src/main/java/run/halo/app/controller/content/ContentFeedController.java index 6d31043c2..618888976 100644 --- a/src/main/java/run/halo/app/controller/content/ContentFeedController.java +++ b/src/main/java/run/halo/app/controller/content/ContentFeedController.java @@ -6,6 +6,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; +import org.springframework.data.web.PageableDefault; import org.springframework.http.MediaType; import org.springframework.lang.NonNull; import org.springframework.stereotype.Controller; @@ -92,8 +93,9 @@ public class ContentFeedController { */ @GetMapping(value = {"sitemap", "sitemap.xml"}, produces = XML_MEDIA_TYPE) @ResponseBody - public String sitemapXml(Model model) throws IOException, TemplateException { - model.addAttribute("posts", buildPosts(null)); + public String sitemapXml(Model model, + @PageableDefault(size = Integer.MAX_VALUE, sort = "createTime", direction = DESC) Pageable pageable) throws IOException, TemplateException { + model.addAttribute("posts", buildPosts(pageable)); Template template = freeMarker.getConfiguration().getTemplate("common/web/sitemap_xml.ftl"); return FreeMarkerTemplateUtils.processTemplateIntoString(template, model); } @@ -105,8 +107,9 @@ public class ContentFeedController { * @return String */ @GetMapping(value = "sitemap.html", produces = MediaType.TEXT_PLAIN_VALUE) - public String sitemapHtml(Model model) { - model.addAttribute("posts", buildPosts(null)); + public String sitemapHtml(Model model, + @PageableDefault(size = Integer.MAX_VALUE, sort = "createTime", direction = DESC) Pageable pageable) { + model.addAttribute("posts", buildPosts(pageable)); return "common/web/sitemap_html"; } @@ -142,12 +145,7 @@ public class ContentFeedController { * @param pageable pageable * @return List */ - private List buildPosts(Pageable pageable) { - if (pageable == null) { - Page postPage = postService.pageBy(PostStatus.PUBLISHED, null); - return postService.convertToListVo(postPage).getContent(); - } - + private List buildPosts(@NonNull Pageable pageable) { Page postPage = postService.pageBy(PostStatus.PUBLISHED, pageable); Page posts = postService.convertToListVo(postPage); return posts.getContent();