Domanda

Ho un sacco di file JSP e back-end in Tomcat. Ho 3 diverse versioni di JSP con la stessa logica all'interno ma con layout diversi. Quindi se cambio un po 'di logica ho tre file JSP da correggere.

Qual è la soluzione adeguata per un tale scenario? Ho pensato a un po 'di stack XML e XSLT: il backend fornisce solo dati in XML e per ogni layout ho XSLT che fa un po' di magia.

Immagina di dover fornire stackoverflow in varie lingue in JSP. Logica uguale ma layout diverso.

Potresti indicarmi una direzione?

È stato utile?

Soluzione

Ulteriori informazioni su MVC (Model View Controller) e sull'idea che JSP dovrebbe essere la parte View di esso e non dovrebbe contenere alcuna logica. La logica appartiene a una classe Model.

Altri suggerimenti

Questo di solito viene risolto usando un motore di template: crei frammenti di pagina più piccoli e poi dichiari al motore di template che certe viste dovrebbero consistere in queste parti, messe insieme in un certo modo.

I riquadri Struts sono il classico esempio nel mondo Java, ma stanno diventando sempre più vecchi e crudi rispetto ai più moderni quadri in Java e in altre lingue. Tapestry e Wicket sono altri due moderni (non li ho usati però).

Tuttavia, solo per 3 pagine l'applicazione di un intero framework Web è probabilmente eccessiva, ma se il tuo sito cresce ...

Con il semplice vecchio JSP senza alcun tipo di fama:

1) Utilizzare i controller per eseguire l'elaborazione e utilizzare solo jsp per visualizzare i dati

2) Usa jsp include le direttive per includere intestazione, navigazione, menu, piè di pagina e altri elementi comuni / condivisi necessari per tutti quei layout.

o / e:

Usa quanto segue in 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>

Il pattern url determina quali jsps ottengono quali frammenti jsp (parziali in Ruby on Rails) attaccati in alto / in basso.

Dai un'occhiata a Piastrelle.

Questo è un dominio problematico molto classico e ci sono molti concetti e framework là fuori che stanno cercando di affrontare questo problema (framework MVC come Struts e JSF, SessionBeans per citarne solo). Come ho il sospetto che tu non sia davvero un'impresa "evangelista" di Java Ti darò 2 semplici consigli.

  1. Ovviamente hai un sacco di codice ridondante nei tuoi JSP. Estrai questo codice in " real " Classi Java e utilizzali su tutti i tuoi JSP. In questo modo sarai in grado di modificare la logica aziendale in un unico posto e la ridondanza sarà meno un problema.

  2. Dai un'occhiata a Cascading Style Sheets (CSS). Questo è il modo più avanzato per impaginare le pagine web. Potresti anche non aver bisogno di JSP diversi per layout diversi, se hai HTML + CSS ben progettato.

Saluti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top