Ошибка при использовании JSTL XML taglib - атрибут xml не принимает выражения - PullRequest
1 голос
/ 18 декабря 2008

Я получаю следующую ошибку при попытке использовать JSTL XML taglib:

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

Я смотрю в tlds и т. Д., Но если кто-нибудь знает, что это может сэкономить мне время, это будет оценено!

Если это поможет, я получаю эту ошибку при выполнении примера кода

<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}"/>

в моем /server-side-transform.jsp - мои директивы taglib:

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

и у меня есть стандартные.jar и jstl.jar в /WEB-INF/lib.

Ответы [ 6 ]

2 голосов
/ 06 августа 2010

Не совсем, вы должны использовать

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

для использования JSTL 1.1.

К сожалению, стандартные файлы .jar содержат много версий тега * .tld, например,

.
  • c-1_0-rt.tld
  • с-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
  • х-1_0-rt.tld
  • х-1_0.tld
  • x.tld

с помощью

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

вы указываете jsp специально использовать JSTL 1.1, который, между прочим, устраняет вышеуказанную проблему, если это не работает, попробуйте использовать

<%@ page isELIgnored="false" %>

, который в основном говорит jsp оценивать EL.

/ SRM

2 голосов
/ 18 декабря 2008

Я обнаружил, что документация Sun ссылается на URI как

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

Тег теперь вызывается правильно, поэтому это и стало причиной проблемы; однако я получаю исключение NullPointerException в doEndTag () ... ho hum

2 голосов
/ 18 декабря 2008

Ваш код выбирает "неправильную" версию x-1_0.tld, возможно, из-за проблем с classpath. Например, на моем текущем пути к классам у меня есть одна версия x-1_0.tld, которая разрешает выражения времени выполнения $ {syntax} в этом теге, и та, которая этого не делает. Тот, что в standard.jar, не разрешает выражения EL, в то время как тот, который есть у меня в Jetty, делает.

1 голос
/ 15 апреля 2011

Используйте следующий код:

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

Вместо:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
0 голосов
/ 05 ноября 2014

change <% @ taglib prefix = "c" uri = "http://java.sun.com/jstl/core"%> мне не подходит. для моего проекта (версия веб-приложения = "3.0") IDE (MyEclipse) Я вижу конфигурационный файл x.tld. Там есть ложь выбора, которая не разрешает появление выбора $ {} или <% =%>. Поэтому я получил способ обмануть в web.xml.

  1. <jsp-config> <taglib> <taglib-uri>/huang</taglib-uri> <taglib-location>/WEB-INF/x.tld</taglib-location> </taglib> </jsp-config> добавить в web.xml

  2. объявите новое имя taglib-url "huang" в моем файле jsp следующим образом:

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

  3. для использования <x:out select="$casexml//案例//${node.name }" />

    Я могу получить правильный результат

0 голосов
/ 17 апреля 2012

Я понимаю, что этот вопрос задавали довольно давно, но я столкнулся с той же проблемой. В моем случае мне следовало использовать следующий пример:

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

Когда я должен был использовать:

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

Я какое-то время смотрел на решение, прежде чем на меня выскочили дополнительные jsp в Ури.

...