Que a tecnologia de modelagem Java HTML funciona de uma forma que está mais próximo Ruby (erb / haml)?
-
03-07-2019 - |
Pergunta
Entre o Java templates soluções tais como Apache Velocity, Freemarker, Hamlets, tapeçaria, StringTemplate, JSP, JSP Weaver (outros?) que se aproximam mais de perto a concisão e simplicidade de soluções de templates HTML semelhantes em ruby ??- haml / erb. Estou preocupado tanto com a sintaxe do motor de templates, bem como como simplesmente se integra com código de controlador no servidor.
Solução
Eu acho que o retorno está chegando é este
ruby ??
<% foreach vars do |var| %>
<!-- some html code to do -->
<%=h var %>
<% end %>
java
<% for( int i = 0; i < vars.length; i++ ) { %>
<%=vars[i]%>
<% } %>
para as tags são semelhantes
para o lado de um java do controlador, vistas Primavera fornece uma maneira de separá-los muito bem
Outras dicas
A prática de misturar código e dados é desaprovada em Java muito mais do que em Ruby. A prática Java recomendada é usar taglibs em vez de blocos de código. Digo isso apenas porque se você escrever seus modelos Java da mesma forma como modelos típicos de Ruby, outros desenvolvedores Java (eu estou supondo que você trabalha em uma equipe) estão propensos a reclamar.
Então, agora a responder à sua pergunta ..... JSPs padrão juntamente com JSTL e EL não são realmente uma má solução. Mas para concisão extra, confira GSPs, a solução de modelagem usado por Grails. Você pode usar GSPs em qualquer webapp Java, ou seja, você não precisa estar usando Groovy / Grails.
... Você ainda pode usar PHP se você quiser usando Quercus . Você poderia, então, assim como JSP, Velocity, etc. usá-los como 'view' e na primavera ou suportes, etc. para lidar com o Controller (s).
Um projeto que fez um tempo atrás estava com JSP e Struts, e na primavera. todos eles integrados bem e poderíamos fazer o que foi descrito.
A maioria dos motores de renderização / modelo têm diferentes sintaxe. O beuty (e animais) do Java é que você pode escolher qual sintaxe que você se sentir mais confortável com e utilização que, com seu controlador / recipiente de escolha.