X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fhtmlindexer%2FWebIndexer.java;h=213cfad00a72b7c51b7d9d24ab6aed6f863d4579;hb=4b74c2be1dd6104f3a4dd50d29ece78857ada3fa;hp=199f789e3dc517d087b1ec9107eb9e6930ca96c6;hpb=cae31cf3d6924dfbd3fe73a6f0f954b01d96bea2;p=meviz.git diff --git a/src/main/java/eu/svjatoslav/meviz/htmlindexer/WebIndexer.java b/src/main/java/eu/svjatoslav/meviz/htmlindexer/WebIndexer.java index 199f789..213cfad 100644 --- a/src/main/java/eu/svjatoslav/meviz/htmlindexer/WebIndexer.java +++ b/src/main/java/eu/svjatoslav/meviz/htmlindexer/WebIndexer.java @@ -3,8 +3,10 @@ package eu.svjatoslav.meviz.htmlindexer; import java.io.BufferedInputStream; import java.io.IOException; import java.io.ObjectInputStream; +import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; +import java.net.URLEncoder; import java.util.List; import eu.svjatoslav.commons.network.UrlParamEncoder; @@ -25,16 +27,31 @@ public class WebIndexer extends AbstractIndexer { this.jspPath = jspPath; } + @Override + public void compileHtml(final Layout layout, + final DirectoryMetadata directory) + throws UnsupportedEncodingException { + super.compileHtml(layout, directory); + } + @Override public String getDirectoryUrl(final AbstractFile directory, final IndexingContext context) { - return jspPath + context.getLocalUrl() + "/" - + UrlParamEncoder.encode(directory.fileName); + + try { + return jspPath + context.getLocalUrl() + "/" + + URLEncoder.encode(directory.fileName, "UTF-8"); + } catch (final UnsupportedEncodingException e) { + throw new RuntimeException(e); + } } public String getHtml(String requestPath) throws MalformedURLException, IOException, ClassNotFoundException { + if (requestPath == null) + requestPath = ""; + if (requestPath.equals("/")) requestPath = ""; @@ -43,11 +60,11 @@ public class WebIndexer extends AbstractIndexer { requestPath); layout.init("Photos", context.getLocalPathComponents(), this, context); - final DirectoryMetadata metadata = getMetadataForPath(requestPath); + final DirectoryMetadata directory = getMetadataForPath(requestPath); - compileHtml(layout, metadata); + compileHtml(layout, directory); - return layout.getHtml(false, false); + return layout.getHtml(false, false, directory); } public DirectoryMetadata getMetadataForPath(final String requestPath)