Какие платформы Java MVC легко интегрируются с StringTemplate? - PullRequest
17 голосов
/ 28 января 2009

Трудно понять, как StringTemplate легко (или нет) интегрируется с популярными веб-инфраструктурами Java Web MVC.

Какие платформы Java MVC легко интегрируются с StringTemplate?

Хороший ответ:

  • упоминает одно решение для интеграции с фреймворком,
  • включает ссылку на что-то полезное и применимое, например:
    • a учебник ,
    • или документация ,
    • или ссылка на исходный код :
      • бесплатно
      • и с открытым исходным кодом или публичный домен .

Читатели / Избиратели , пожалуйста, проголосуйте за решение, если вы знаете, что это правда и здорово.

В рамках этого вопроса я не заинтересован ни в каком другом шаблонизаторе, кроме StringTemplate .

Ответы [ 5 ]

11 голосов
/ 29 января 2009

Я получил 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();
    }
}

И определение определения разрешения для примера:

<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>
2 голосов
/ 29 января 2009
1 голос
/ 29 сентября 2011

Существует неплохая реализация StringTemplate как представления для Spring MVC, которое также поддерживает интеграцию SiteMesh.

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

Существует пример реализации веб-приложения, использующего ST в качестве технологии просмотра в этом проекте (включая интеграцию sitemesh). Повторять его здесь не стоит, поэтому указатель на него напрямую:

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

Автор также предоставил поддержку кодирования / экранирования вывода для предотвращения XSS. Эта поддержка существует для HTML, CSS, XML, JS и URL.

Если вы пользователь Maven, проект доступен в центральном

<dependency>
  <groupId>com.watchitlater</groupId>
  <artifactId>spring-stringtemplate</artifactId>
  <version>1.5.1</version>
</dependency>
1 голос
/ 21 октября 2009

Java Web WEB Framework с открытым исходным кодом JPublish , очень хорошо работает с ST. Перейдя по ссылке выше, вы найдете там следующее:

  • Руководство пользователя JPublish Framework
  • практическая демонстрация (загружается из кода Google ~ 5,7 МБ), показывающая, как использовать ST из JPublish. Вы поймете, как это просто.

Веселись,

0 голосов
/ 21 апреля 2009

Некий Гарри Карамидас поделился , в декабре 2008 года адаптер Struts на официальном сайте ST. Прямая ссылка на zip-файл.

...