Erreur en utilisant XML JSTL taglib - l'attribut xml n'accepte toutes les expressions non

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

  •  22-08-2019
  •  | 
  •  

Question

Je reçois l'erreur suivante lorsque je tente d'utiliser le XML JSTL taglib:

/server-side-transform.jsp(51,0) 
According to TLD or attribute directive in tag file,
attribute xml does not accept any expressions

Je suis à la recherche dans les TLDs etc, mais si quelqu'un sait ce que cela est peut me faire gagner du temps, il serait apprécié!

Si elle aide, je reçois cette erreur en cours d'exécution du code exemple

<c:set var="xml">
  <paragraph>
    This document uses <bold>unusual</bold> markup,
    which we want to replace with <bold>HTML</bold>.
  </paragraph>
</c:set>

<c:set var="xsl">
  <?xml version="1.0"?>
  <xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:template match="paragraph">
      <p><xsl:apply-templates/></p>
    </xsl:template>

    <xsl:template match="bold">
      <b><xsl:value-of select="."/></b>
    </xsl:template>
  </xsl:stylesheet>

</c:set>

<x:transform xml="${xml}" xslt="${xsl}"/>

dans mon /server-side-transform.jsp - mes directives taglib sont:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x" %>

et j'ai standard.jar et jstl.jar dans / WEB-INF / lib.

Était-ce utile?

La solution

Votre code est une version ramassait « incorrecte » de x-1_0.tld, probablement en raison de problèmes de classpath. Je vois, par exemple, sur mon chemin de classe actuelle, j'ai une version de x-1_0.tld que PERMET-exécution des expressions $ {} syntaxe dans cette balise et qui ne fonctionne pas. Celui de standard.jar ne permet pas l'expression EL, alors que celui que j'ai jetée dans le fait.

Autres conseils

Je trouve que la documentation Sun fait référence à l'URI comme

http://java.sun.com/jsp/jstl/xml

La balise est maintenant appelée correctement, cela a donc été la cause du problème; mais je reçois un NullPointerException dans doEndTag () ... hum ho

Pas exactement, vous devez utiliser

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

pour utiliser JSTL 1.1.

Malheureusement, les fichiers standard.jar comprend de nombreuses versions de tag * pour .tld par exemple.

  • c-1_0-rt.tld
  • c-1_0.tld
  • c.tld
  • fmt-1_0-rt.tld
  • fmt-1_0.tld
  • fmt.tld
  • fn.tld
  • permittedTaglibs.tld
  • scriptfree.tld
  • sql-1_0-rt.tld
  • sql-1_0.tld
  • sql.tld
  • x-1_0-rt.tld
  • x-1_0.tld
  • x.tld

en utilisant

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

vous dites au jsp d'utiliser spécifiquement JSTL 1.1 qui fixe BTW la question ci-dessus, si cela ne fonctionne pas essayer d'utiliser

<%@ page isELIgnored="false" %>

qui indique essentiellement jsp d'évaluer EL.

/ srm

Utilisez le code suivant:

<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %> 

Au lieu de:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

Je me rends compte de cette question a été posée il y a un certain temps mais je couru dans le même problème. Dans mon cas, l'exemple que je me suivait dirigé à utiliser:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

Quand je l'ai utilisé:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

Je regardais la solution pendant un certain temps avant que l'autre jsp dans la uri émergea me.

Changement <% @ taglib prefix = "c" uri = "http://java.sun.com/jstl/core" %> n'est pas pour moi. pour mon projet (web-app version = "3.0") IDE (MyEclipse) Je vois le fichier de configuration de x.tld.There est faux de sélection qui ne permettent pas la sélection $ {} apperance ou <% =%>. Je suis un moyen de tricher dans le web.xml.

  1. <jsp-config> <taglib> <taglib-uri>/huang</taglib-uri> <taglib-location>/WEB-INF/x.tld</taglib-location> </taglib> </jsp-config> ajouter à web.xml

  2. déclarer le nouveau nom taglib-url "huang" à mon dossier jsp comme ceci:

    <%@ taglib prefix="x" uri="/huang" %>

  3. à use<x:out select="$casexml//案例//${node.name }" />

    Je peux obtenir le bon résultat

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top