@GetRoute("exp") public String validatorException() { return "exp.html"; }
@GetRoute public void hello(Response response) { response.text("Ok."); } }
@GetRoute("p") public void p(@Param String p1) { System.out.println(p1); userService.sayHello(); }
@GetRoute("csrf") public void getCsrfToken(Request request, Response response) { response.text("token: " + request.attribute("_csrf_token")); }
@GetRoute("login") public String login() { return "login.html"; }
@GetRoute("index") public String index() { return "admin/index.html"; }
@GetRoute("content") public void getContent(@Param String fileName, Response response) { try { String themePath = Const.CLASSPATH + File.separatorChar + "templates" + File.separatorChar + "themes" + File.separatorChar + Commons.site_theme(); String filePath = themePath + File.separatorChar + fileName; String content = Files.readAllLines(Paths.get(filePath)).stream().collect(Collectors.joining("\n")); response.text(content); } catch (IOException e) { log.error("获取模板文件失败", e); } }
@GetRoute("template/:theme") public String template(@PathParam String theme, Request request) throws IOException { File themeDir = new File(Utils.CLASSPATH + "templates/themes/" + theme); File[] files = themeDir.listFiles(pathname -> pathname.getName().endsWith(".html")); List<Template> list = new ArrayList<>(); for (File file : Objects.requireNonNull(files)) { list.add(new Template(file.getName(), IOKit.readToString(file.toPath()))); } request.attribute("files", list); request.attribute("theme", theme); return "admin/template.html"; }
@GetRoute("logout") public void logout(Response response, Session session) { session.remove(Constant.LOGIN_SESSION_KEY); response.redirect("/"); }
@GetRoute("options") @JSON public Map<String, String> getOptions() { return Bootstrap.getGlobalConfig(); }
@GetRoute("install") public String install(Response response) { if (Utils.isInstall()) { response.redirect("/"); return null; } return "install.html"; }
@GetRoute("orders") public String orders(OrderParam orderParam, Request request) { Page<Order> orders = makeMoneyService.findOrders(orderParam); request.attribute("orderPage", orders); return "admin/orders.html"; }
/** * 首页 * * @return */ @GetRoute public String index(Request request, @Param(defaultValue = "12") int limit) { return this.index(request, 1, limit); }
@GetRoute(value = {"search", "search.html"}) public String search(Request request, @Param(defaultValue = "12") int limit) { String keyword = request.query("s").orElse(""); return this.search(request, keyword, 1, limit); }
/** * 搜索页 * * @param keyword * @return */ @GetRoute(value = {"search/:keyword", "search/:keyword.html"}) public String search(Request request, @PathParam String keyword, @Param(defaultValue = "12") int limit) { return this.search(request, keyword, 1, limit); }
/** * 某个分类详情页 */ @GetRoute(value = {"category/:keyword", "category/:keyword.html"}) public String categories(Request request, @PathParam String keyword, @Param(defaultValue = "12") int limit) { return this.categories(request, keyword, 1, limit); }
/** * 标签详情页 * * @param name 标签名 */ @GetRoute(value = {"tag/:name", "tag/:name.html"}) public String tagPage(Request request, @PathParam String name, @Param(defaultValue = "12") int limit) { return this.tags(request, name, 1, limit); }
/** * 归档页 * * @return */ @GetRoute(value = {"archives", "archives.html"}) public String archives(Request request) { List<Archive> archives = siteService.getArchives(); request.attribute("archives", archives); request.attribute("is_archive", true); return this.render("archives"); }
@GetRoute(value = "") public String index(@Param(defaultValue = "1") int page, @Param(defaultValue = "15") int limit, Request request) { Users users = this.user(); Page<Comments> commentPage = new Comments().where("author_id", "<>", users.getUid()).page(page, limit); request.attribute("comments", commentPage); return "admin/comment_list"; }
@GetRoute(value = {"search/:keyword/:page", "search/:keyword/:page.html"}) public String search(Request request, @PathParam String keyword, @PathParam int page, @Param(defaultValue = "12") int limit) { page = page < 0 || page > TaleConst.MAX_PAGE ? 1 : page; Page<Contents> articles = new Contents().where("type", Types.ARTICLE).and("status", Types.PUBLISH) .like("title", "%" + keyword + "%").page(page, limit, "created desc"); request.attribute("articles", articles); request.attribute("type", "搜索"); request.attribute("keyword", keyword); request.attribute("page_prefix", "/search/" + keyword); return this.render("page-category"); }