webForumDet fria alternativet

Jakarta Tag-Library

3 svar · 371 visningar · startad av Jaar

JaarMedlem sedan juli 2001434 inlägg
#1

Hm, jag är rätt ny på det här med tag-librarys och har lite problem att få till det. Jag laddade hem Jakarta versionen av JSTL för att testa, men får inte till det, tycker ofta att det är väldigt flummig dokumentation.

Normalt kör jag Oracles standard installation med apache så jag brukar inte dola med webservern. Nu har jag dock kört in Tomcat (som fungerar) och tänkte testa tag-libs.

Det jag har gjort är följande.

1. Ladda hem allt och lade Jar filerna under
c:\program\apache tomcat 4.0\webapps\ROOT\WEB-INF\lib
tdl filerna under
c:\program\apache tomcat 4.0\webapps\ROOT\WEB-INF\
sen har jag en index.jsp fil under
c:\program\apache tomcat 4.0\webapps\test\index.jsp

2. Min index.jsp fil innehåller bara detta:
<%@ taglib uri="http://jakarta.apache.org/taglibs/c" prefix="tlib" %>

3. web.xml i WEB-INF katalogen (nämn ovan) är modifierad till

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
  <taglib>
    <taglib-uri>[url]http://jakarta.apache.org/taglibs/c[/url]</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
  </taglib>
</web-app>

jar-filen ska hittas automatiskt har jag hört iom att det är JSP 1.2.
När jag öppnar min index.jsp fil får jag följande fel...

type Exception report

message Internal Server Error

description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: This absolute uri ([url]http://java.sun.com/jstl/core[/url]) cannot be resolved in either web.xml or the jar files deployed with this application
	at org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:194)
	at org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:174)
	at org.apache.jasper.compiler.JspParseEventListener.processTaglibDirective(JspParseEventListener.java:1170)
	at org.apache.jasper.compiler.JspParseEventListener.handleDirective(JspParseEventListener.java:765)
	at org.apache.jasper.compiler.DelegatingListener.handleDirective(DelegatingListener.java:125)
	at org.apache.jasper.compiler.Parser$Directive.accept(Parser.java:255)
	at org.apache.jasper.compiler.Parser.parse(Parser.java:1145)
	at org.apache.jasper.compiler.Parser.parse(Parser.java:1103)
	at org.apache.jasper.compiler.Parser.parse(Parser.java:1099)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:214)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:210)
	at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:548)
	at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:176)
	at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:188)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
	at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
	at java.lang.Thread.run(Unknown Source)

Vad gör man?! Jag har som sagt inte så stor koll på det hela...

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#2

Hej!

Jag har ej använt taglibs själv, men kan inte länkarna i denna tråden vara till nytta?

http://www.webforum.nu/showthread.php?postid=411670#post411670

mvh Jörgen HP

ViktorMedlem sedan aug. 20021 752 inlägg
#3

Jag tror att det löser sig om du ändrar din URI från en URL till ett vanligt namn. typ

  <taglib>
    <taglib-uri>/c</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
  </taglib>

Och skriver såhär i din JSP fil

<%@ taglib uri="/c" prefix="tlib" %>

/Viktor

JaarMedlem sedan juli 2001434 inlägg
#4

Ok, har fått hjälp av andra också, men fick det inte att fungera så som det var tänkt...

Min lösning:
packa upp Jar filerna till /WEB-INF/lib
tdl filerma till /WEB-INF
I min index.jsp skrev jag bara: <%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>

Jag har inte fått något fel men jag har inte testat någon tag ännu, men filerna hittas iaf.

Sist i mitt inlägg klistrar jag in hjälp från en annan lista...

TLD FILES
---------------------------------
c-rt.tld
c.tld
fmt-rt.tld
fmt.tld
sql-rt.tld
sql.tld
x-rt.tld
x.tld

JAR FILES
---------------------------------
dom.jar
jaxen-full.jar
jaxp-api.jar
jdbc2_0-stdext.jar
jstl.jar
sax.jar
saxpath.jar
standard.jar
xalan.jar
xercesImpl.jar

*Since you're using a JSP 1.2 container (Tomcat 4), this is all you have
to do (assuming the JAR files contains the TLD file, and that the TLD
contains a default URI declaration, but that's usually the case for
Jakarta libraries). When you start the container, it looks through all
files under WEB-INF to locate all tag libraries. As long as you use the
default URI for the library in your taglib directive, it's able to
figure out which library you refer to. For instance, if you have
installed the Jakarta Standard library (the JSTL reference
implementation), a taglib directive like this makes the JSTL core
library available within the page:

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

> The tld files into my webapps/ROOT/WEB-INF catalog.

No need to install the TLD files; they are already part of the JAR files
and web container will find them there.

> Then I am suppost to change my web.xml file I guess. [...]

No, that's not necessary when you use a JSP 1.2 container, see above.

> Since I don't have done anything else (changed classpath or anything) I
> guess I might have to do that to?

No need to change the classpath. You have placed the JAR files in the
WEB-INF/lib directory, which is already part of the containers
classpath.*

130 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)