哪些Java MVC框架可以轻松地与StringTemplate集成?

很难看出StringTemplate如何轻松(或不)与流行的 Java Web MVC框架集成。

哪些Java MVC框架可以轻松地与StringTemplate集成?

一个很好的答案:

  • 提到了一个与框架集成的解决方案
  • 包括指向有用且适用的内容的链接 ,例如:
    • 一个教程
    • 文件
    • 或者对源代码的引用:
      • 免费的
      • 开源公共领域

读者/选民 ,如果你知道这是真的和伟大的,请投票寻求解决方案。

在这个问题的范围内,我对除StringTemplate之外的任何其他模板引擎都不感兴趣

我已经使用StringTemplate与Spring一起工作了。 基本上,它只需要一个自定义视图。

但首先,免责声明:这是一个实验性的黑客攻击。 我从来没有在生产代码中使用它,它可以在发生之前使用一些改进。 我认为回答关于StringTemplate与Web MVC框架的集成方式的问题已经足够了。

参考: Spring Web MVC文档

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(); } } 

以及一个示例视图解析器定义:

      

快速搜索让我看到了使用StringTemplate进行Spring视图的演示 。

开源Java WEB框架JPublish与ST一起工作得很好。 按照上面的链接,你会发现以下内容:

  • 一个JPublish框架用户指南
  • 一个实用的演示(可从Google代码下载~5.7MB),向您展示如何使用JPublish中的ST。 你会发现它是多么容易。

玩得开心,

作为Spring MVC的一个视图,StringTemplate也是一个非常糟糕的实现,它也支持SiteMesh集成。

https://github.com/tomcz/spring-stringtemplate/

有一个使用ST作为该项目中的视图技术的webapp的示例实现(包括sitemesh集成)。 这里不值得重复,所以直接指向它的是:

https://github.com/tomcz/spring-stringtemplate/tree/master/src/test/webapp/WEB-INF

作者还为XSS预防的编码/转义输出提供了支持。 这种支持存在于HTML,CSS,XML,JS和URL中。

如果您是Maven用户,则该项目位于中央

  com.watchitlater spring-stringtemplate 1.5.1  

某个Harry Karamidas于2008年12月在ST的官方网站上分享了一个Struts适配器。 直接链接到zip文件。