Подтвердить что ты не робот

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

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

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

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

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

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

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

4b9b3361

Ответ 1

У меня есть StringTemplate для работы с Spring. В принципе, все, что было сделано, было обычным представлением.

Но во-первых, отказ от ответственности: это экспериментальный взлом. Я никогда не использовал это в производственном коде, и он может использовать некоторое улучшение, прежде чем это произойдет. Я думаю, что достаточно ответить на ваш вопрос о том, как легко StringTemplate интегрируется с каркасом веб-MVC.

Ссылка: Spring Документация по веб-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>

Ответ 3

Открытая Java WEB-инфраструктура JPublish, очень хорошо работает с ST. Следуя приведенной выше ссылке, вы найдете следующее:

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

Удачи,

Ответ 4

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

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

Существует пример реализации webapp, использующего 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>

Ответ 5

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