2010-02-08 6 views
4

Cela pourrait être une question très novice, mais je ne trouve rien satisfaisantComment créer une section Macro/Snippet/HTML Fragment/Named dans JSP sans utiliser tags/includes/JSPFragments?

Je veux faire somethign comme ça dans JSP (hors de la boîte de préférence):

par exemple dans un fichier appelé products.jsp une implémentation imaginaire qui explique ce que je veux

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

et par la suite utiliser dans divers emplacements dans le même JSP, il est défini

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

Je l'ai regardé dans JSP tags, et JSP Franches, mais là l'extrait de fragment est juste passé de l'appelant JSP à l'étiquette JSP, et je veux qu'il soit au même endroit

Est-ce que la seule solution est de créer une balise JSP pour ce petit extrait spécifique (ou d'inclure?)

Ai-je perdu quelque chose de très basique?

+0

"mais là l'extrait de fragment est juste passé de l'appelant JSP à la balise JSP, et je le veux pour être au même endroit "- Je n'ai pas eu celui-là .. – Bozho

+1

Il veut définir le modèle dans la même page JSP. Pensez en tant qu'exemple de realworld à propos de 'xsl: template' qui peut être placé dans le même fichier XSL que là où il a été utilisé. Peut-être que Tiles ou Sitemesh peuvent faire. Je ne sais pas, je ne les ai jamais utilisés aussi. – BalusC

+0

@Bozho - l'idée de fragments est que la balise jsp peut définir seulement la mise en page, et le fragment est un extrait de "callback" ou "user draw" de JSP (à part les scriptlets wituot) qui peuvent être branchés dans la balise, c'est sympa, mais pas ce que je veux ... @BalusC - Yep, et Yep –

Répondre

1

Si le petit morceau de texte que vous voulez à plusieurs endroits est statique, je recommanderais une inclusion JSP. Cependant, si le texte provient d'une base de données/fichier plat/XML, je vous recommande d'utiliser une balise personnalisée. Dans l'exemple que vous avez fourni, il semble que vous essayez de lister les produits et leur prix. Cela peut être facilement accompli dans une étiquette personnalisée.

Dans votre classe d'étiquettes, lisez les données, créez une méthode qui va créer les balises HTML pour les données et les renvoyer sous forme de chaîne, imprimez la chaîne. Maintenant, dans votre JSP, appelez la balise personnalisée partout où vous avez besoin du texte. Bien sûr, vous devez paramétrer l'étiquette pour déterminer ce qu'il faut chercher/afficher à quel endroit.

HTH

V

0

Je ressens votre douleur @EranMedan, ne peut toujours pas croire que ce n'est pas une caractéristique de JSP. Après des années de le vouloir, j'ai écrit ma propre solution simple ici pour faire ce que vous (et moi) voulez: https://stackoverflow.com/a/25575120/1607642

Questions connexes