当前位置: 首页 > 知识库问答 >
问题:

JSP 2.0-在JSP文档中使用标记文件而不使用。tld声明

岳凯康
2023-03-14

我想在jsp文档文件中使用类似的内容:

<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>

但是,在我看到的所有30个示例中,每个人都使用简单的jsp语法,而不是jsp文档语法。类似于这样:

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    xmlns:t="/WEB-INF/tags" 
    xmlns="http://www.w3.org/1999/xhtml"
    version="2.0">

根本不起作用。页面上看不到驻留在 /WEB-INF/tags中的所有标记文件。只有当我定义一个tld文件并在其中列出所有标记时,才能在页面上访问它们。是否可以避免tld声明并仍然在jsp文档页面中使用标记文件?

共有2个答案

万志专
2023-03-14

您需要在xmlns属性中添加前缀“urn:jsptagdir:”。就你而言,

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    xmlns:t="urn:jsptagdir:/WEB-INF/tags" 
    xmlns="http://www.w3.org/1999/xhtml"
    version="2.0">

您还可以使用前缀“urn:jsptld:”来指定TLD的位置。有关详细信息,请参阅中的“声明标记库”部分http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPX3.html.

谭思博
2023-03-14

1在WEB-INF/目录中创建标记目录

2创建示例。标记所在的标记文件:

<%@ attribute name="exampleAttribute" required="true" type="java.lang.String" description="Example attribute" %>

<c:out value="${exampleAttribute}">

3在jsp中声明要使用的标记库:

<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>

4使用它:

<tags:sample exampleAttribute="Hello from custom tag!"/>

我认为您应该有web应用程序2.5版本。仅从支持JSP 2.0的版本开始考虑(签入web.xml)。

 类似资料:
  • 需要显示pdf、docx、ppt、图像等内容。使用iframe标记。 当我们使用时,就像这个文件被下载。而不是下载,我们需要显示的内容在浏览器本身。 试用了另一个示例来查看计算机中本地存在的文档https://view.officeapps.live.com/op/view.aspx?src=c%3a%5cusers%5c123456%5cdesktop%5cttk.docx,这导致显示错误页。

  • 我正在尝试创建一个安装在sling中的捆绑包,并使用自定义TagLib。我想使用标记文件,而不是使用扩展TagSupport的java类。这样,我可以使用Sling模型来表示JCR,使用JSP标记文件来表示标记。 这是我的标记文件,它是一个非常基本的锚,没有什么特别的,我只是想测试一下: 我创建了一个TLD文件,我在WEB-INF/tags和META-INF/tags文件夹中都尝试了该文件(我去掉

  • 问题内容: 似乎有两种使用JSP进行模板制作的方法。包含具有以下语句之一的文件 或使用JSP标记文件 然后在另一个JSP页面中使用 那么我应该使用哪种方法?现在是否已弃用一个,或者它们既有效又涵盖不同的用例? 编辑 使用此标记文件与使用包含文件不一样吗? 并在另一个JSP上调用它 在我看来,这与使用include并将参数传递给它完全相同。标记文件和包含的文件一样吗? 问题答案: 有几种重用JSP文

  • 在我的Struts 1应用程序中的jsp中,我试图使用c: set标签从显示表中的列表中设置变量。 表中的每一行都有一个值(100或200),用于区分是哪个用户添加了条目。我只想为某个用户显示编辑/删除(100)。 我正在尝试设置该值并将其与100进行比较,以确定哪些行应具有编辑/删除权限。 我遇到的问题是rowUser没有从我的列表中分配值。 我知道列表中有值,因为表正在显示,但它们显示的所有行

  • 我在tomcat 7本地应用程序服务器上使用JSP 1.2和JSTL或Spring的taglib声明。但是,无论文件是在WEB-INF/lib下还是在类路径的其他位置,我总是会收到这样的错误:绝对uri:http://java.sun.com/jsp/jstl/core无法在web.xml或与此应用程序一起部署的jar文件中解析绝对uri:http://www.springframework.or

  • 我有一个Spring Boot项目,我正在尝试在JSP文件中进行以下调用: tags文件夹位于- \src\main\resources\WEB-INF\tags JSP文件夹在- \s rc\main\资源\META-IN F\资源\WEB-IN F\jsp 我还将application.properties文件定义为包括: 如果我尝试将标签文件夹放在任何其他类路径中,Intellij会显示错误