O HTML templates opções existem em Java como uma alternativa para fazer a saída HTML do seu código servlet?

StackOverflow https://stackoverflow.com/questions/816077

  •  03-07-2019
  •  | 
  •  

Pergunta

Dado o seguinte servlet Olá mundo, como você pode transferir a saída Olá Mundo fora do código servlet e colocá-lo em algum tipo de HTML templates formato? Eu gostaria de simplesmente chamar o modelo do servlet e tê-lo tornar as variáveis ??Java me refiro no modelo -? Talvez referindo-se a string "Olá mundo" como uma variável de classe na classe SprogzServlet

package boochy;

import java.io.IOException;
import javax.servlet.http.*;

@SuppressWarnings("serial")
public class SprogzServlet extends HttpServlet
{
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException
    {
        resp.setContentType("text/plain");
        resp.getWriter().println("Hello, world");
    }
}
Foi útil?

Solução

É muito raro para ser fazer desenvolvimento Java Web sem usar algum tipo de framework MVC que vai delegar todas as vistas para JSPs (para além da saída de PDF e outros casos de canto), de modo que você tem:

Alguns frameworks Web como Tapestry e JSF ( "Java Server Faces") são um pouco mais como visualizações HTML com tags extras.

JSPs são em última análise, apenas compilado para servlets de qualquer maneira e tendem a ser uma forma mais conveniente para a saída HTML. De um modo geral eu usá-los como um mínimo ao invés de escrever um monte de out.println () declarações em um servlet diretamente.

Outras dicas

Eu tenho usado com sucesso Velocity para um número de anos em um site interno escala muito pequena.

Seu fácil de usar e tem uma API limpa agradável. Ele lida com explosão de atividade extremamente bem.

Engraçado, eu só vi uma pergunta ligeiramente semelhante antes. Você também pode usar páginas PHP via Quercus para o seu processamento de página em Java.

cletus é bastante correto em suas recomendações.

Freemarker (ou velocidade) são as soluções para usar se você "simplesmente" exigem renderização baseada em modelo. Eles são bastante eficazes. Você pode empurrar para cima a escada de complexidade um uso JSPs.

Eu discordo que este é especificamente limitado a padrão MVC. Na sua forma mais simplista (e claramente isso não vai escalar para grandes sistemas), você pode ter o mesmo serviço servlet todos os pedidos, e escolher um modelo de velocidade / freemarker, e preencher o contexto necessário e tornar o modelo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top