-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
950db74
commit a726404
Showing
7 changed files
with
136 additions
and
303 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
87 changes: 87 additions & 0 deletions
87
zen-webservice/src/main/java/com/nominanuda/springmvc/StaticViewResolver.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
package com.nominanuda.springmvc; | ||
|
||
import java.io.IOException; | ||
import java.io.OutputStream; | ||
import java.net.MalformedURLException; | ||
import java.net.URL; | ||
import java.util.HashMap; | ||
import java.util.Locale; | ||
import java.util.Map; | ||
|
||
import javax.servlet.http.HttpServletRequest; | ||
import javax.servlet.http.HttpServletResponse; | ||
|
||
import org.springframework.web.servlet.View; | ||
import org.springframework.web.servlet.ViewResolver; | ||
|
||
import com.nominanuda.io.IOHelper; | ||
import com.nominanuda.web.http.HttpProtocol; | ||
|
||
public class StaticViewResolver implements ViewResolver { | ||
protected static final IOHelper io = new IOHelper(); | ||
protected String contentType = HttpProtocol.CT_APPLICATION_OCTET_STREAM; | ||
protected boolean cache = false; | ||
|
||
public View resolveViewName(String viewName, Locale locale) | ||
throws Exception { | ||
URL url = resolve(viewName, locale); | ||
if(url == null) { | ||
return null; | ||
} else { | ||
if(cache) { | ||
View cv = findCachedView(url); | ||
if(cv != null) { | ||
return cv; | ||
} | ||
} | ||
final byte[] barr = io.readAndClose(url.openStream()); | ||
View v = new View() { | ||
public void render(Map<String, ?> model, HttpServletRequest request, | ||
HttpServletResponse response) throws Exception { | ||
response.setContentLength(barr.length); | ||
response.setContentType(contentType); | ||
OutputStream os = response.getOutputStream(); | ||
os.write(barr); | ||
os.flush(); | ||
} | ||
public String getContentType() { | ||
return contentType; | ||
} | ||
}; | ||
if(cache) { | ||
storeCachedView(url, v); | ||
} | ||
return v; | ||
} | ||
} | ||
|
||
private Map<URL, View> viewCache = new HashMap<URL, View>(); | ||
protected void storeCachedView(URL url, View v) { | ||
viewCache.put(url, v); | ||
} | ||
|
||
protected View findCachedView(URL url) { | ||
return viewCache.get(url); | ||
} | ||
|
||
protected String suffix = ""; | ||
protected URL resolve(String viewName, Locale locale) throws IOException { | ||
if(! viewName.endsWith(suffix)) { | ||
return null; | ||
} | ||
return new URL(viewName); | ||
} | ||
|
||
public void setContentType(String contentType) { | ||
this.contentType = contentType; | ||
} | ||
|
||
public void setCache(boolean cache) { | ||
this.cache = cache; | ||
} | ||
|
||
public void setSuffix(String suffix) { | ||
this.suffix = suffix; | ||
} | ||
|
||
} |
40 changes: 0 additions & 40 deletions
40
zen-webservice/src/main/java/com/nominanuda/web/htmlcomposer/AppendingIterator.java
This file was deleted.
Oops, something went wrong.
74 changes: 0 additions & 74 deletions
74
zen-webservice/src/main/java/com/nominanuda/web/htmlcomposer/DocContext.java
This file was deleted.
Oops, something went wrong.
5 changes: 5 additions & 0 deletions
5
zen-webservice/src/main/java/com/nominanuda/web/htmlcomposer/DomOp.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package com.nominanuda.web.htmlcomposer; | ||
|
||
public enum DomOp { | ||
prepend, append, before, after, replaceWith, html | ||
} |
Oops, something went wrong.