It's hard to see how StringTemplate integrates easily (or not) with popular Java web MVC frameworks.
Which Java MVC frameworks integrate easily with StringTemplate?
A good answer:
- mentions one solution to integrate with a framework,
- includes a link to something useful and applicable, like:
- a tutorial,
- or documentation,
- or a reference to source code:
- free,
- and open source or public domain.
Readers/Voters, please vote for a solution if you know it's true and great.
In the scope of this question, I am not interested in any other templating engine than StringTemplate.
-
A quick search led me to this demonstration of using StringTemplate for a Spring view.
-
I've gotten StringTemplate to work with Spring. Basically, all it took was a custom view.
But first, a disclaimer: This is an experimental hack. I've never used this in production code, and it could use some improvement before that happens. I think it is adequate to answer your question about how easily StringTemplate integrates with a Web MVC framework, however.
Reference: Spring Web MVC documentation
StringTemplateView.java:
import java.io.PrintWriter; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.antlr.stringtemplate.StringTemplate; import org.antlr.stringtemplate.StringTemplateGroup; import org.springframework.core.io.Resource; import org.springframework.web.servlet.view.InternalResourceView; public class StringTemplateView extends InternalResourceView { @Override protected void renderMergedOutputModel(Map model, HttpServletRequest request, HttpServletResponse response) throws Exception { // Provides a Spring resource descriptor referring to the .st file Resource templateFile = getApplicationContext().getResource(getUrl()); // Kind of redundant... StringTemplateGroup group = new StringTemplateGroup("group", templateFile.getFile().getParent()); StringTemplate template = group.getInstanceOf(getBeanName()); template.setAttributes(model); // Output to client PrintWriter writer = response.getWriter(); writer.print(template); writer.flush(); writer.close(); } }And an example view resolver definition:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="myapp.web.view.StringTemplateView"/> <property name="prefix" value="/WEB-INF/st-views/"/> <property name="suffix" value=".st"/> </bean> -
A certain Harry Karamidas shared, in December 2008, a Struts adapter on ST's official site. Direct link to the zip file.
-
The open source Java WEB framework JPublish, works very well with ST. By following the link above, you'll find there the following:
- a JPublish framework user guide
- a practical demo (downloadable from Google code ~5.7MB) showing you how to use ST from JPublish. You'll realize how easy it is.
Have fun,
-
Hey, I have a problem because when i want to use this 4 technologies (SpringFramework, StringTemplate, JSTL, HIBERNATE) my JSTL do not work. But when i do not use ST - JSTL works. So I have a question is it possible integration this four technologies??
0 comments:
Post a Comment