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

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

好的答案:

  • 提到了一种解决方案与框架
  • 集成
  • 包含一个链接,它指向有用且适用的内容,例如:
  • 一个教程
  • 文档
  • 或对源代码的引用:
  • 免费
  • 开源公共(public) Realm

  • 读者/投票者,如果您知道这是真的,那么请投票解决。

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

    最佳答案

    我已经将StringTemplate与Spring一起使用。基本上,它只需要一个自定义 View 。

    但首先,免责声明:这是一个实验性黑客。我从未在生产代码中使用过它,在此之前它可能需要一些改进。我认为回答您有关StringTemplate与Web MVC框架的集成有多么容易的问题就足够了。

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

    还有一个示例 View 解析器定义:
    <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>
    

    关于java - 哪些Java MVC框架可以轻松地与StringTemplate集成?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/488930/

    10-10 06:59