Diferentes layouts e i18n em aplicação JSP
-
02-07-2019 - |
Pergunta
Eu tenho um monte de arquivos JSP e backend no Tomcat. Eu tenho 3 versões diferentes de JSP com o mesmo dentro de lógica, mas com diferentes layouts. Então, se eu mudar alguma lógica Eu tenho três arquivo JSP para correção.
O que é o soution adequada para o cenário tal? Pensei em alguns XML e XSLT pilha: backend dá apenas dados em XML e que para cada layout tenho XSLT que faz um pouco de magia.
Basta imaginar que você precisa fornecer stackoverflow em várias línguas em JSP. Logic o mesmo, mas layout diferente.
Você poderia me aponte para alguma direção?
Solução
Saiba mais sobre MVC (Model View Controller) ea ideia de que JSP deve ser a parte de exibição do mesmo e não deve conter qualquer lógica alguma. Logic pertence a uma classe de modelo.
Outras dicas
Isso geralmente é resolvido usando algum mecanismo de modelagem -. Você cria fragmentos de páginas menores, e, em seguida, você declarar para o motor modelo que certos pontos de vista deve ser composto dessas peças, colocados juntos em uma certa maneira
do Struts telhas é o exemplo clássico no mundo Java, mas é realmente ficando velho e intrincada relação a framworks mais modernas em Java e outras linguagens. Tapeçaria e Wicket são dois os mais modernos (não usei-los embora).
Para apenas 3 páginas aplicação de um framework web inteiro é provavelmente um exagero, porém, mas se o seu site cresce ...
Com planície antiga JSP sem quaisquer tipos de fameworks:
1) Use controladores para fazer o processamento e só usar jsp para exibir os dados
2) Use jsp incluir directivas para incluir cabeçalho, navegação, menu, rodapé e outros elementos compartilhados / necessário comuns a todos esses layouts.
e / ou:
Use o seguinte em web.xml
<jsp-property-group>
<url-pattern>/customers/*</url-pattern>
<include-prelude>/shared/layout/_layout_customers_top.jsp</include-prelude>
<include-coda>/shared/layout/_layout_customers_bottom.jsp</include-coda>
</jsp-property-group>
O URL modelo determina que jsps obter que fragmentos JSP (parciais em Ruby on Rails) ligados a parte superior / inferior.
Dê uma olhada em Azulejo.
Este é um domínio de problema muito clássica e muito lá de conceitos e estruturas lá fora que estão tentando lidar com esta questão (frameworks MVC como Struts e JSF, SessionBeans, para citar apenas). Como eu suspeito que você não é realmente uma empresa Java "evangelista" Vou dar-lhe 2 conselhos simples.
-
Você, obviamente, tem um monte de código redundante em que você está JSPs. Extrair esse código em Java Classes "reais" e usá-los em todas as suas JSPs. Dessa forma, você será capaz de modificar a lógica de negócios em um só lugar e redundância será menos de um problema.
-
Dê uma olhada em Cascading Style Sheets (CSS). Este é o estado do caminho arte para páginas de layout. Você pode até não precisar de diferentes JSPs para diferentes layouts, se você tiver bem desenhado html + CSS.
Saudações