X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fdemoscenemusic%2Fcore%2FTemplateServlet.java;h=c1090f2e3859d4f886f4a92bc42ee4d3092a567c;hb=6044000b16b448b4f1f6df4dd9b101ceed2397ac;hp=acbb0346ed330b4a585bc9081c5eac9ccbfda489;hpb=efc386bbc23f81b3a73e40dd22708782e26d525d;p=demoscenemusic.git diff --git a/src/main/java/net/pterodactylus/demoscenemusic/core/TemplateServlet.java b/src/main/java/net/pterodactylus/demoscenemusic/core/TemplateServlet.java index acbb034..c1090f2 100644 --- a/src/main/java/net/pterodactylus/demoscenemusic/core/TemplateServlet.java +++ b/src/main/java/net/pterodactylus/demoscenemusic/core/TemplateServlet.java @@ -38,9 +38,13 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.pterodactylus.demoscenemusic.data.Artist; +import net.pterodactylus.demoscenemusic.data.Properties; import net.pterodactylus.demoscenemusic.data.Style; import net.pterodactylus.demoscenemusic.data.Track; +import net.pterodactylus.demoscenemusic.data.User; import net.pterodactylus.demoscenemusic.page.ServletRequest; +import net.pterodactylus.demoscenemusic.template.PropertiesAccessor; +import net.pterodactylus.demoscenemusic.template.UserAccessor; import net.pterodactylus.util.io.Closer; import net.pterodactylus.util.io.StreamCopier; import net.pterodactylus.util.template.ClassPathTemplateProvider; @@ -79,6 +83,8 @@ public class TemplateServlet extends HttpServlet { core = (Core) config.getServletContext().getAttribute("core"); templateContextFactory.addAccessor(Object.class, new ReflectionAccessor()); + templateContextFactory.addAccessor(User.class, new UserAccessor()); + templateContextFactory.addAccessor(Properties.class, new PropertiesAccessor()); templateContextFactory.addFilter("html", new HtmlFilter()); CollectionSortFilter sortFilter = new CollectionSortFilter(); @@ -86,7 +92,7 @@ public class TemplateServlet extends HttpServlet { @Override public int compare(Artist leftArtist, Artist rightArtist) { - return leftArtist.name().compareToIgnoreCase(rightArtist.name()); + return leftArtist.getName().compareToIgnoreCase(rightArtist.getName()); } }); @@ -94,7 +100,7 @@ public class TemplateServlet extends HttpServlet { @Override public int compare(Track leftTrack, Track rightTrack) { - return leftTrack.name().compareToIgnoreCase(rightTrack.name()); + return leftTrack.getName().compareToIgnoreCase(rightTrack.getName()); } }); @@ -102,7 +108,7 @@ public class TemplateServlet extends HttpServlet { @Override public int compare(Style leftStyle, Style rightStyle) { - return leftStyle.name().compareToIgnoreCase(rightStyle.name()); + return leftStyle.getName().compareToIgnoreCase(rightStyle.getName()); } }); @@ -146,15 +152,19 @@ public class TemplateServlet extends HttpServlet { */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse httpServletResponse) throws ServletException, IOException { + request.setCharacterEncoding("UTF-8"); String path = request.getPathInfo(); if (path.startsWith("/")) { path = path.substring(1); } + if ((path.length() == 0) || (path.endsWith("/"))) { + path += "index"; + } Page page = pages.get(path); if (page != null) { ServletRequest servletRequest; try { - servletRequest = new ServletRequest(request); + servletRequest = new ServletRequest(request, this); } catch (URISyntaxException use1) { throw new IOException("Could not create URI from " + request.getRequestURI(), use1); } @@ -173,6 +183,14 @@ public class TemplateServlet extends HttpServlet { } } + /** + * {@inheritDoc} + */ + @Override + protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException { + doGet(httpServletRequest, httpServletResponse); + } + // // PRIVATE METHODS //