protected void renderHtml(int statusCode, RouteContext routeContext) { TemplateEngine engine = application.getTemplateEngine(); if (engine == null) { renderDirectly(statusCode, routeContext); } else { String template = getTemplateForStatusCode(statusCode); if (template == null) { log.debug("There is no {} template for status code '{}'", engine.getClass().getSimpleName(), statusCode); renderDirectly(statusCode, routeContext); } else { try { Error error = prepareError(statusCode, routeContext); Map<String, Object> bindings = error.asMap(); bindings.putAll(prepareTemplateBindings(statusCode, routeContext)); routeContext.setLocals(bindings); routeContext.render(template); } catch (Exception e) { log.error("Unexpected error rendering '{}' template", template, e); renderDirectly(statusCode, routeContext); } } } }
private void sendDirectoryListing(RouteContext routeContext, File dir) { String absoluteDirUri = getUrlPath() + StringUtils.addStart(directory.toPath().relativize(dir.toPath()).toString(), "/"); if (StringUtils.isNullOrEmpty(directoryTemplate)) { // Generate primitive, default directory listing String page = generateDefaultDirectoryListing(routeContext, dir, absoluteDirUri); routeContext.html().send(page); } else { // Render directory listing template int numFiles = 0; int numDirs = 0; long diskUsage = 0; List<DirEntry> dirEntries = getDirEntries(routeContext, dir, absoluteDirUri); for (DirEntry dirEntry : dirEntries) { if (dirEntry.isFile()) { numFiles++; diskUsage += dirEntry.getSize(); } else if (dirEntry.isDirectory() && !dirEntry.getName().contains("..")) { numDirs++; } } routeContext.setLocal("dirUrl", absoluteDirUri); routeContext.setLocal("dirPath", absoluteDirUri.substring(getUrlPath().length())); routeContext.setLocal("dirEntries", dirEntries); routeContext.setLocal("numDirs", numDirs); routeContext.setLocal("numFiles", numFiles); routeContext.setLocal("diskUsage", diskUsage); routeContext.render(directoryTemplate); } }
ctx.setLocal("apiKey", Optional.fromNullable(account.getToken()).or("")); ctx.render(swaggerTemplate); });
ctx.setLocal("apiKey", Optional.fromNullable(account.getToken()).or("")); ctx.render(swaggerTemplate); });