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

使用web片段时tagdir属性无效

南门宇
2023-03-14

我使用web片段功能在jar中维护JSP和标记,使用这种方法,我的JSP页面无法找到tagdir,并导致“此标记库的tagdir属性值无效”

这是我罐子里的结构。

META-INF--资源

在mypage中。jsp中,我指定标记库如下:

我得到了这些错误:
我的页面。jsp:7:4:taglib指令必须指定“uri”或“tagdir”属性。

我的页面。jsp:7:33:此标记库的tagdir属性的值无效。

似乎在这种方法下,它找不到tagdir。我在与web.xml的战争中尝试了相同的结构,它能够找到标签。所以我想知道是否有任何方法可以将类似的解决方案与Web片段方法一起使用。

共有1个答案

祝昊东
2023-03-14

在web片段项目中不需要WEB-INF。改用此结构:

web片段项目:

META-INF/
-- resources/
   -- tags/
      -- mytag.tag
   -- mypage.jsp
-- web-fragment.xml

资源目录中的所有内容现在都可用于引用项目,就好像它们部署WEB-INF中一样。

web项目:

WEB-INF/
-- tags/
   -- othertag.tag
   -- (mytag.tag)
-- otherpage.jsp
-- (mypage.jsp)

所以请参考mytag。web项目中的标记:

<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %>
...
<my:mytag ... />

至于您看到的错误,我不知道您尝试了什么,但以下是您的做法:

对于. tag,您必须指定tagdir并将其设置为标签的文件夹:

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

对于. tld,您必须指定uri并将其设置为tld的URI:

<%@ taglib prefix="mytld" uri="http://example.com/tld/my" %>
 类似资料:
  • 问题内容: 我正在使用MapStruct库映射对象,但出现此错误: 无法将属性“ java.util.Date aDate”映射到“ javax.xml.bind.JAXBElement ADATE”。考虑声明/实现一个映射方法:“ javax.xml.bind.JAXBElement map(java.util.Date value)”。 我的问题:应该在哪里取消此映射方法? 问题答案: 我通过

  • 是否有一种方法可以检查堆栈中的前一个片段是否是包含SupportMap的片段?

  • 我在使用LocalbroadcastManager将数据从一个片段传输到另一个片段时遇到问题。 FragmentA有editText,点击它将启动FragmentB。FragmentB有一个项目列表,单击我想将数据传递给FragmentA的每个项目。 这是我的实现。 下面是广播消息发送的片段B。 调试/日志记录从未命中广播接收器的onReceive消息。少了什么吗?谢谢你的建议。

  • 我们正在更新一些旧的WiX脚本,以利用组件的功能属性,这样无论何时添加或删除组件,我们都不必在两个位置更新文件(一次是添加组件,另一次是向组件组添加组件引用)。 我们将WiX项目分离到单独的文件中,每个片段一个,以使事情更易于管理。但是,我定义特性组件的片段不再包括在内。这听起来与托马斯在回应特性属性声明时的问题完全相同。但是,当他使用热自动生成他的Wix文件时,我们正在从头开始手工制作它们。 我

  • 我的应用程序(最小API14)使用带有3个选项卡的ActionBar。选项卡是:i。输入数据(约10个片段)ii。管理数据(15个片段)三.查看数据(8个片段)。每个选项卡都有一个默认片段,但根据用户的选择会有多个片段。 我希望用户能够在3个选项卡之间滑动(通过滑动内容),因此我需要使用ViewPager和兼容性库V4。 我得到的建议(经过大量研究)是使用一个MainActivity,它承载Act

  • 这就是我卡住的地方。当我从导航抽屉中选择另一个项目(片段)时,它会显示出来,但当我按后退按钮时,应用程序关闭时会显示消息“不幸的是,myapp已经停止了。我是缺少了一些代码,还是必须为每个片段添加onBackPressed代码?更重要的是,我对onBackPressed方法应该去哪里感到困惑。它应该只在MainActivity中进行还是应该在每个碎片活动中进行?目前,我唯一的onBackPress