关于自定义JSP标记库的问题

时间:2011-07-04 07:52:58

标签: java css jsp jsp-tags

我的JSP页面中包含一个自定义的JSP taglib,其中包含

<%@ taglib uri="xyz" prefix="xyz" %>

我在哪里以及如何找到确切定义的位置?

如果我有一个像

这样的陈述
<xyz:cssurl fileName="myCSS.css"/>

它是否可以动态包含不同的CSS,如果是,可以如何?

2 个答案:

答案 0 :(得分:1)

uri只是一个标识符。它不必是实际的URI。查看您的web.xml:它可能在那里定义。如果不是,请查看您的Web应用程序使用的所有jar文件,并查看其META-INF文件夹是否包含定义此uri的.tld文件。

现在针对你的第二个问题(它可以动态地包含不同的CSS,如果是,如何?),我不明白你究竟在问什么。但是,由于没有人包括你自己知道xyz taglib是什么,所以很难回答。找到此taglib的tld文件后,您应该找到此标记的描述和预期参数。我唯一可以说的是你当然可以多次使用这个标签:

<xyz:cssurl fileName="myCSS.css"/>
<xyz:cssurl fileName="mySecondCSS.css"/>
<xyz:cssurl fileName="myThirtCSS.css"/>

答案 1 :(得分:0)

定义taglib的标准方法是定义taglib的URI。它可能是您网站或任何其他网站上的位置。有数百种taglib可用于不同目的。这一切都取决于你正在做什么环境。

可以定义位于localhost的简单taglib。 http://localhost:8080/taglib.tld

<% @ taglib uri="/taglib.tld"  prefix="helloWorld" %>

现在,您可以在prefix helloWorld中使用此标记。

<html><body>
    <helloWorld:image />
</body></html>

有一个常见的核心JSTL在JSP中非常常见,它以c为前缀。

这个库有很多例子。

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

请仔细阅读这些Examples,您将对一些基本/核心JSTL及其用法有一个很好的了解。

在本教程之后,您可能会动态添加CSS文件。 :)但是为了帮助你,让我给你一个简单的解决方案。

<c:forEach var="cssURI" items="${MyURICollection}">
   <xyz:cssurl fileName="${cssURI}"/>
</c:forEach>

其中MyURICollection包含要动态添加的所有CSS文件名。