2009-12-03 6 views
4

est-il un bon moyen de réduire les espaces blancs générés par la JSPS sans avoir recours aux techniques suivantes:Auto Trim les espaces blancs jsps

  • trimSpaces directive jaspe: peut ruiner votre disposition en mangeant des espaces importants où vous voulez
  • les zones environnantes que vous souhaitez découper avec commentaires JSP, en commentant les espaces. ce qui rend la JSP plus difficile à modifier et semble horrible

jaimerais savoir si quelqu'un connaît une meilleure façon de couper de manière sélective des espaces dans les pages JSP

modifier: ce que je fais maintenant est mis tous mes tags sur on aime comme celui-ci:

<c:forEach var="date" items="${model.list}"><%-- 
--%><c:set var="dateStr"><ct:dateFormat date="${date.startDate}"/></c:set><%-- 
--%><option value="${dateStr}">${dateStr}</option><%-- 
--%></c:forEach> 
+0

vous devriez considérer si votre mise en page est bien faite si elle dépend des espaces. – Bozho

Répondre

2

Vous avez ici le choix des moindres. J'irais avec le jaspe trimSpaces directive et si vous avez des espaces qui est important dans votre mise en page, vous pouvez stratégiquement insérer des espaces comme celui-ci:

<c:out value=" " /> 

ou comme ceci:

${ } 

Autres options pour les espaces de rognage qui n'ont pas été mentionnés dans votre message sont les suivants:

  • Ecrivez un filtre de servlet qui coupe les espaces comme un post rendu p (Cela devra être assez intelligent pour ne pas couper votre espace "significatif").
  • Mettez toutes vos balises jsp sur une ligne (just kidding, ne fais pas ça!)
+0

peut-être si je commençais une nouvelle application Web qui serait un choix, mais de revenir sur 40K lignes de code et insérer des espaces .. id besoin d'externaliser cela. – mkoryak

+0

@mkoryak: J'ai ajouté quelques stratégies supplémentaires. Voir ma réponse mise à jour. – Asaph

+0

Je finis par mettre toutes mes étiquettes sur une ligne, j'ai mis à jour ma question avec un exemple. – mkoryak

2

espaces manger où vous voulez les

Pouvez-vous donner un exemple? Je ne peux vraiment pas imaginer un tel besoin.

Voulez-vous dire à l'intérieur des zones de texte? Inside HTML <pre> éléments? Inside CSS white-space:pre éléments de style? Le paramètre trimSpaces de Tomcat devrait bien les prendre en compte. Ou voulez-vous dire des espaces pour disposition? Eh bien, ils n'appartiennent vraiment pas là. Envisagez de remplacer par les propriétés de marge/remplissage CSS et conservez le paramètre trimSpaces.

+0

Un exemple d '"espaces de restauration où vous les voulez": ''. Avec 'trimSpaces' de jasper, le prénom et le nom sont écrasés sans espace entre les deux. Bien sûr, il existe une solution de contournement élégante: ''. – Asaph

+0

Ah oui, je vois. Merci. – BalusC

+0

exactement ce que dit Asaph. Aussi la solution ne marche pas élégante toujours travailler aussi facilement si votre JSP a beaucoup de conditionals, boucles etc, sa plus difficile à combiner la sortie comme ça sans utiliser beaucoup de setters etc. – mkoryak

0

Essayez: http://coldjava.hypermart.net/servlets/trimflt.htm juste d'implémenter moi-même en tant que filtre de servlet, fonctionne un charme.

Une autre option est la suivante: htmlcompressor (google, je ne peux fournir 1 lien atm ...)

Le taglib de htmlcopressor vous permet d'utiliser un emballage, a également des compresseurs pour js et css.

Questions connexes