Soru Hangi Java MVC çerçeveleri StringTemplate ile kolayca entegre olur?


Nasıl olduğunu görmek zor StringTemplate ile kolayca entegre (veya değil) popüler Java web MVC çerçeveleri.

Hangi Java MVC çerçeveleri StringTemplate ile kolayca entegre olur?

İyi bir cevap:

  • söz bir çözüm bir çerçeve ile bütünleşmek
  • içerir bir bağlantı yararlı ve uygulanabilir bir şeye, örneğin:
    • bir öğretici,
    • veya belgeleme,
    • veya bir referans kaynak kodu:
      • ücretsiz,
      • ve açık kaynak veya kamu malı.

Okuyucular / SeçmenlerDoğru ve harika olduğunu biliyorsanız lütfen bir çözüm için oy verin.

Bu soru kapsamında, ben StringTemplate'den başka bir şablonlama motoruyla ilgilenmiyorum.


17
2018-01-28 19:11


Menşei


Harika soru! Terrence bir dahidir, ama hala biraz akademik. StringTemplate büyük ölçüde hak ettiği ilgiyi görmez çünkü (afaik) hiçbir çerçeve özelliği yoktur. - erickson
StringTemplate haritasının nasıl olduğu inanılmaz. Bu soru şu ana kadar 20 saat geçti, ve zaten gömülü - 0 resmi entegrasyon çözümü. ... STC'nin MVC'lerde kazanılabilir varlığını elde etmesine yardımcı olmak için topun bizim kampımızda olduğu anlaşılıyor. - Daniel Jomphe
Selam! Evet, ST etrafına sarılmış büyük bir çerçeve ile asla bilinmeyecek. Jguru sunucusu yaptıktan sonra, inşaat sitelerine razı oldum. Durumu iyileştirmek için yapabileceğim hiçbir şey yok, korkarım. İnsanları sevmekten çok memnun oldum. Etkili çünkü bence doğru olanı yapar ama ... ANTLR'den dolayı ST, kod geninde ve çeviri çevrelerinde iyi bilinir. - Terence Parr
Çoğu çerçeveye sığabileceğini düşünürdüm. Slim3 ile kullanıyorum. Yaptığım şey, Servletlerimdeki JSP dosyalarına yönlendirmek yerine, bir şablon oluşturuyorum. Slim3'te, bu Kontrolör sınıflarında olur. Ben (şimdiye kadar) projemdeki JSP'yi tamamen ortadan kaldırdım. - JR Lawhorne


Cevaplar:


Spring ile çalışmak için StringTemplate'i aldım. Temel olarak, tüm bu özel bir görünüm oldu.

Ama önce, bir yasal uyarı: Bu deneysel bir hack. Bunu üretim kodunda hiç kullanmadım ve bu gerçekleşmeden önce biraz iyileştirme kullanabilir. Bununla birlikte, StringTemplate'in bir Web MVC çerçevesiyle ne kadar kolay bir şekilde bütünleştiğine dair sorunuza cevap vermenin yeterli olduğunu düşünüyorum.

Referans: Bahar Web MVC belgeleri

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

Ve örnek bir çözüm çözümleyici tanımı:

<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>

11
2018-01-28 21:54



+1. Bu kodla dikkat ettiğim bir şey, eğer şablonlarınız / WEB-INF / st-views / alt dizininde yaşıyorsa çalışmaz. Ne yaptım biten etkin bir şekilde getUrl (). Substring (0, getUrl (). İndexOf (getBeanName ())) kullanarak "önek" yeniden inşa edildi; ve onu kullanarak getResource () çağrısı. Ayrıca StringTemplateGroup () öğesini başlatırken getParent () çağrısını da bıraktım. - Steve Kalemkiewicz


Hızlı arama beni buna yönlendirdi Spring View için StringTemplate kullanmanın gösterilmesi.


2
2018-01-28 21:34





Açık kaynak Java WEB çerçevesi JPublish, ST ile çok iyi çalışıyor. Yukarıdaki bağlantıyı takip ederek, aşağıdakileri bulacaksınız:

  • bir JPublish framework kullanım kılavuzu
  • JPublish'ten ST'yi nasıl kullanacağınızı gösteren pratik bir demo (Google kodundan indirilebilir ~ 5.7MB). Ne kadar kolay olduğunu anlayacaksınız.

İyi eğlenceler,


1
2017-10-21 12:09





SiteMesh entegrasyonunu da destekleyen Spring MVC'nin bir görünümü olarak StringTemplate'in kötü bir uygulaması yoktur.

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

Bu projede görüntü teknolojisi olarak ST'yi kullanan bir webapp uygulamasının örnek bir uygulaması vardır (sitemesh entegrasyonu dahil). Burada tekrar edilmeye değmez, bu yüzden işaretçi doğrudan:

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

Yazar ayrıca XSS önleme için çıktı / kodlama çıkışı için destek sağlamıştır. Bu destek HTML, CSS, XML, JS ve URL'ler için mevcut.

Maven kullanıcısıysanız, proje merkezde mevcut

<dependency>
  <groupId>com.watchitlater</groupId>
  <artifactId>spring-stringtemplate</artifactId>
  <version>1.5.1</version>
</dependency>

1
2017-09-29 03:44





Belli bir Harry Karamidas paylaşılanAralık 2008’de Struts ST'nin resmi sitesinde adaptör. Doğrudan bağlantı zip dosyasına.


0
2018-04-21 15:51