2008-12-18 3 views
1

을 허용하지 않습니다오류 사용 JSTL의 XML 태그 라이브러리 속성 XML 내가 JSTL의 XML 태그 라이브러리를 사용하려고 할 때 다음과 같은 오류를 받고 있어요 어떤 식

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

내가 등등 TLD를로 찾고 있어요,하지만 누군가 이것이 이것이 나에게 시간을 절약 할 수 있다는 것을 안다면, 고맙겠습니다!

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

내가해야합니까 : 내 태그 라이브러리 지시자는 - 도움이된다면

,이 오류가 내 /server-side-transform.jsp의 예제 코드

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

를 실행 얻을/WEB-INF/lib의 standard.jar 및 jstl.jar.

답변

2

아마도 클래스 경로 문제로 인해 x-1_0.tld의 "잘못된"버전이 선택되었습니다. 예를 들어 현재 클래스 경로에서 볼 수있는 x-1_0.tld의 한 버전은이 태그에 런타임 표현식 $ {syntax}을 허용합니다. standard.jar 파일은 EL 표현식을 허용하지 않지만 부티크 버전은 EL 표현식을 허용하지 않습니다.

2

나는 Sun 설명서가

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

태그가 올바르게 호출되고

로 URI를 의미 발견, 그래서 이것은 문제의 원인이었다; 그러나 내가 아니 정확히 호 흠 ...

+0

JSTL1.1은 <% @ taglib uri = "http://java.sun.com/jsp/jstl/xml"prefix = "x"%>이고, 다른 하나는 1.0 – krosenvold

2

을 대해 doEndTag (에서 NullPointerException이) 점점 오전, 당신은 JSTL 1.1을 사용하는

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

를 사용해야합니다.

불행히도 standard.jar 파일에는 * .tld 태그의 여러 버전이 포함되어 있습니다.

  • 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.

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

    를 사용하여 너무 TLD는

이 작동하지 않는 경우 특별히 사용해보십시오 BTW 위의 문제를 해결 JSTL 1.1을 사용하는 JSP에게

<%@ page isELIgnored="false" %>

기본적으로 jsp에게 EL을 평가하도록 지시합니다.

/SRM

1

다음 코드를 사용합니다

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

대신 :

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

을 나는이 질문은 꽤 전에 요청했지만, 난 그냥 같은 문제 다 퉜다 실현 .

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

내가 사용 되었어야 할 때 :

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

내가 여분의 JSP 전에 잠시 동안 솔루션 바라보고 있었다 나의 경우, 예를 들어 내가 사용하는 나에게 지시 다음되었다 나 한테서 튀어 나온 우릴에서.

+0

입니다. 귀하의 대답은 [@ Brabster 's] (http://stackoverflow.com/a/377559/413020)에 통합되어 있습니다 : 귀하의 의견은 훨씬 최신이며, _only_는 더 좋은 형식으로 제공됩니다 (당신이 새로운 것을 말하지 않도록하십시오). – Alberto

0

변경 < % @ taglib prefix = "c"uri = "http://java.sun.com/jstl/core"%>는 저에게 적합하지 않습니다. 내 프로젝트 (웹 응용 프로그램 버전 = "3.0") IDE (MyEclipse) x.tld의 구성 파일을 볼 수 있습니다. 선택 apperance $ {} 또는 < % = % >. 그래서 나는 web.xml에서 속임수를 쓸 방법이있다.

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

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

    을 사용 :

    1. <jsp-config> <taglib> <taglib-uri>/huang</taglib-uri> <taglib-location>/WEB-INF/x.tld</taglib-location> </taglib> </jsp-config> 추가는

    2. 이처럼 내 JSP 파일에 "황"새로운 태그 라이브러리-URL 이름을 선언 web.xml에합니다

      올바른 결과를 얻을 수 있습니다.