Je voudrais savoir comment extraire le contenu d'une DIV spécifique en utilisant des décorateurs, au lieu d'utiliser <decorator:body />
qui récupérera tout le contenu de la balise <body>
.Extraction du contenu d'une DIV à l'aide des décorateurs Sitemesh
Répondre
NB Black Sensei a posté une meilleure réponse ci-dessous.
Je ne pense pas que ce soit possible. Sitemesh est un système de template très basique qui a très peu de tags - cinq en tout. Il y a une liste complète ici decorator taglib
Vous pourriez vouloir regarder un autre système de modèle si vous avez besoin de ce niveau de contrôle.
SiteMesh est livré avec com.opensymphony.module.sitemesh.multipass.DivExtractingPageParser. C'est limité dans la fonctionnalité; il extrait seulement les divs un niveau en dessous du corps.
C'est une bonne chose ... sinon sitemesh va jouer avec n'importe quel div qui a un identifiant. Envelopper un div dans un autre sans identifiant le protégera. –
Il est possible avec la version 2.4.2 de SiteMesh que je suis using.Found le anwser sur christian grobmeier alors voici ma sitemesh.xml
<sitemesh>
<property name="decorators-file" value="/WEB-INF/decorators.xml"/>
<excludes file="${decorators-file}"/>
<page-parsers>
<parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser"/>
</page-parsers>
<page-parsers>
<parser content-type="text/html" class="com.opensymphony.module.sitemesh.multipass.DivExtractingPageParser"/>
</page-parsers>
<decorator-mappers>
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}"/>
</mapper>
</decorator-mappers>
</sitemesh>
est ici un extrait de mon mainlayout.jsp
<div id="container" style=" padding-top: 60px; ">
<div id="leftbar">
<div style="height:400px;">
<img src="<spring:url value='/images/Logo.png'/>" class="logo"/>
</div>
<decorator:getProperty property="div.side-menu"/>
<%--<decorator:body />--%>
</div>
<div>
<decorator:getProperty property="div.top" />
</div>
<div>
<decorator:getProperty property="div.content" />
</div>
</div>
extrait de home.ftl (en utilisant freemarker)
<div id="side-menu">
<ul>
<li class="current"><a href="/home">All</a></li>
<#list genre as gen >
<li><a href="/category?cat=${gen}">${gen}</a></li>
</#list>
</ul>
</div>
<div id="top">
<ul id="slider" class="architectorSlider">
<li>
<img src="<@spring.url '/images/slide_1.jpg'/>" alt="" class="slide-image"/>
<img src="<@spring.url '/images/slider/timthumbf014.jpg'/>?src=<@spring.url '/images/slide_1.jpg' />&w=100&h=42&zc=1"
alt="" class="slide-thumbnail"/>
</li>
</ul>
</div>
J'espère que cela peut vous aider à partir si ce n'est pas trop tard: D
Ce n'est pas correct. Vous devez remplacer 'HtmlPageParser' par' DivExtractingPageParser'. Sinon, des choses étranges peuvent arriver. Notez également que votre XML est mal formé, il ne devrait pas y avoir deux sections '
- 1. Masquage du contenu des DIV
- 2. Ajouter du contenu à div div
- 3. Sitemesh + Struts2 + Velocity: Les décorateurs ne peuvent pas accéder aux objets du contexte
- 4. SiteMesh: Modification du type de contenu de la réponse
- 5. Réglage des décorateurs à Zend_Form_Element_Checkbox
- 6. Extraction du contenu de la fenêtre
- 7. Extraction de contenu à partir du document MHT
- 8. Correspondance de modèle à l'aide de décorateurs
- 9. Échange du contenu DIV à partir du même lien textuel
- 10. Center DIV contenu à viewport
- 11. Analyse ou extraction du contenu de la table html
- 12. CSS taille du contenu div question
- 13. en utilisant des décorateurs de forme zend
- 14. Hauteur du contenu dans une div
- 15. DIV positionné ne s'étend pas à la hauteur du contenu
- 16. CSS div largeur - largeur du contenu seulement ..?
- 17. Calculer la somme du contenu DIV
- 18. affichage du contenu HTML dans div
- 19. copier le contenu du div presse-papiers
- 20. CSS - Aligner verticalement du contenu DIV
- 21. Est-il possible d'extraire des tags SCRIPT avec SiteMesh?
- 22. Extraction du texte à partir élément XML avec des attributs
- 23. Extraction d'images à partir du Web
- 24. contenu ne reste pas à l'intérieur div
- 25. CSS à appliquer au contenu DIV
- 26. extraction du contenu des entrées ZipFile lors de la lecture de byte [] (Java)
- 27. Zend Framework Décorateurs de cases à cocher
- 28. Besoin d'aide pour DIV à l'intérieur DIV pour étirer la largeur du contenu dans Firefox
- 29. Fonction Décorateurs
- 30. Harmoniser contenu à l'intérieur d'un div
Pas réellement une solution de sitemesh, mais si vous voulez que cela fonctionne vraiment vite, vous pouvez le faire avec jQuery avec quelque chose comme ça '$ (document) .ready (function() {$ ("# inner-div"). prependTo ("# content-wrapper");}); ' –