2009-09-24 10 views
2

J'utilise des grails et je veux utiliser un taglib JSP personnalisé interne dans le projet. Est-ce que quelqu'un sait comment faire ça? J'ai vu des références pour faire fonctionner d'autres taglibs jsp mais pas si vous les avez écrites vous-même. J'ai un fichier jar appelé « -view.jar commun » dans le dossier lib et ai essayé ce code pour référencer:Grails - utiliser un taglib JSP personnalisé

<%@ taglib uri="${createLinkTo(dir:'lib',file:'common-view.jar')}" prefix="cas_common" %> 

Et puis dans le code-je utiliser:

<cas_common:body>${career.jobSections.sectionWorkActivities}</cas_common:body> 

Je reçois :

org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: Could not parse script 

Toute aide grandement appréciée.

Matt

Répondre

1

modifier le fichier "web-app/WEB-INF/tld/grails.tld" et ajoutez les entrées nécessaires qui pointent vers votre classe:

<tag> 
    <name>includeJs</name> 
     <tag-class>com.mycompany.taglib.IncludeJsTag</tag-class> 
     <body-content>JSP</body-content> 
     <variable> 
      <name-given>it</name-given> 
      <variable-class>java.lang.Object</variable-class> 
      <declare>true</declare> 
      <scope>AT_BEGIN</scope> 
     </variable> 
     <dynamic-attributes>true</dynamic-attributes> 
</tag> 

mis common-view.jar dans le répertoire lib annuaire. et il devrait être prêt à partir! REMARQUE: à propos de l'espace de noms - dans GSP, je pense que l'espace de noms global g: peut être utilisé pour faire référence à votre balise ci-dessus.

Pour plus d'informations, consultez cette page - c'est un peu difficile à distiller, mais si vous avez fait jsp/servlets, il devrait être assez compréhensible. Edit: j'ai pu extraire plus d'informations de ce rapport de bogue que la page doco ci-dessus: http://jira.codehaus.org/browse/GRAILS-4571. Essentiellement, vous ajouteriez la déclaration de balise à grails.tld ou la vôtre (si vous utilisez grails.tld, vous n'aurez pas besoin de déclarer un taglib sur la page que vous utilisez cette balise (par exemple, <%@ taglib prefix="jct" uri="/WEB-INF/tld/jsp-custom-tags.tld"%>). Le taglib est dans le classspath, le mettre dans/lib/fonctionnera bien

+0

Merci pour la réponse mais je viens d'obtenir: 2009-09-28 13: 49: 19,636 ERROR [errors.GrailsExceptionResolver] Traitement d'erreur GroovyPageView: Tag [cascaidBody] n'existe pas Bibliothèque de balises introuvable pour l'espace de nom: g Lorsque j'utilise ceci, – Matt

+0

, vous devez publier votre fichier grails.tld pour le diagnostic – Chii

Questions connexes