Come creare una macro / Snippet / HTML Frammento / sezione denominata in JSP senza utilizzare i tag / include / JSPFragments?

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

Domanda

Questa potrebbe essere una domanda molto newbie, ma non ho trovato nulla soddisfacente

Voglio fare somethign come questo in JSP (out of the box, preferibilmente):

es. in un file chiamato products.jsp un'implementazione immaginaria che spiega quello che voglio

<x:named-segment name="product">
     Product: <strong>${product.name}</strong> <br/>
     price: ${product.price}
</x:named-segment>

e più tardi l'uso questo in varie posizione nella stesso JSP è definito

<table>
   <c:forEach var="product" items="${products}">
      <tr>
         <td><x:use-segment name="product"/></td>
      </tr>
   </c:forEach>
</table>

Ho guardato in JSP tag e JSP Fragements , ma c'è il frammento di frammento è appena passato dal chiamante JSP al tag JSP, e lo voglio di essere nella stessa posizione

è l'unica soluzione è quella di craete un tag JSP per quella specifica piccolo frammento (o includere?)

Mi sto perdendo qualcosa di molto semplice?

È stato utile?

Soluzione

Se il piccolo pezzo di testo che si desidera in molti posti è statico, mi sento di raccomandare un JSP includono. Tuttavia, se il testo è dal database / file di piatto / XML, mi consiglia di utilizzare un tag personalizzato. Dall'esempio che ci hai fornito, sembra come se si sta cercando di prodotti di elenco e il loro prezzo. Questo può essere facilmente realizzato in un tag personalizzato.

Nella classe tag, leggere i dati, creare un metodo che creerà i tag HTML per i dati e restituire come una stringa, stampare la stringa. Ora nel tuo JSP, richiamare il tag personalizzato ovunque sia necessario il testo. Naturalmente è necessario parametrizzare il tag di determinare ciò che per andare a prendere / mostra a quale posto.

HTH

V

Altri suggerimenti

Sento il tuo @EranMedan dolore, ancora non posso credere che questo non è una caratteristica di JSP. Dopo anni di volerlo, ho scritto la mia soluzione semplice qui per fare quello che (e io) desidera: https://stackoverflow.com/a/25575120/1607642

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