我目前声明了我的 .tag 文件:
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
标签文件路径示例:
/WEB-INF/tags/test.tag
我是这样使用它们的:
<t:test oneAttributeKey="oneAttributeValue">
some content...
</t:test>
我的问题:我不想将所有标记文件放在一个 文件夹“/WEB-INF/tags”中。
我希望将它们放在不同的子目录中:
/WEB-INF/tags/users/
/WEB-INF/tags/widgetsA/
/WEB-INF/tags/widgetsB/
(...)
这可能吗?无需为每个人创建不同的 taglib 前缀?
我想避免的例子:
<%@taglib prefix="t_users" tagdir="/WEB-INF/tags/users" %>
<%@taglib prefix="t_widgetsA" tagdir="/WEB-INF/tags/widgetsA" %>
<%@taglib prefix="t_widgetsB" tagdir="/WEB-INF/tags/widgetsB" %>
我想要的示例,使用单个“t”前缀:
<t:users/onetag oneAttributeKey="oneAttributeValue">
some content...
</t:users/onetag>
是否存在类似的解决方案?
更新:BalusC 通过在单个 .tld 中定义所有标记文件表明可以仅使用一个前缀。我想当时我的问题还不够清楚:我想知道是否可以在多个子目录中使用标记文件,而不必为每个子目录指定路径,任何地方 除了在元素中使用它们的用户(例如:“ 我不喜欢 JSP 标签的地方在于它们的行为与常规 JSP 文件非常不同,即使它们实际上共享非常相似的内容。事实上,我什至决定将我所有的 jsp 文件放在/WEB-INF/tags/文件夹中,因此它们与标签文件并排(为此我不得不选择/WEB-INF/tags/,因为这出于某种原因,文件夹对于标记文件是必需的)!我不明白为什么我的一些包含 HTML 的文件会放在/WEB-INF/jsp/而其他一些文件会放在/WEB-INF/tags/!! 我希望能够将 jsp 和标记文件分组到目录中,具体取决于它们的相关内容!示例: 但这迫使我在多个@tablib 或.tld 中声明每个子目录的路径,我觉得这有点不方便。我会接受它,但我认为它可以改进。 /WEB-INF/tags/users/userProfileLayout.tag
/WEB-INF/tags/users/employeeProfile.jsp
/WEB-INF/tags/users/employerProfile.jsp
/WEB-INF/tags/widgetsA/widgetALayout.tag
/WEB-INF/tags/widgetsA/oldWidgetA.jsp
/WEB-INF/tags/widgetsA/newWidgetA.jsp
最佳答案
将它们定义为 <tag-file>
在一个.tld
您放入的文件 /WEB-INF
文件夹。
例如/WEB-INF/my-tags.tld
<?xml version="1.0" encoding="UTF-8" ?>
<taglib
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1"
>
<display-name>My custom tags</display-name>
<tlib-version>1.0</tlib-version>
<short-name>my</short-name>
<uri>http://example.com/tags</uri>
<tag-file>
<name>foo</name>
<path>/WEB-INF/tags/users/foo.tag</path>
</tag-file>
<tag-file>
<name>bar</name>
<path>/WEB-INF/tags/widgetsA/bar.tag</path>
</tag-file>
<tag-file>
<name>baz</name>
<path>/WEB-INF/tags/widgetsB/baz.tag</path>
</tag-file>
</taglib>
按如下方式在您的 JSP 中使用它
<%@taglib prefix="my" uri="http://example.com/tags" %>
...
<my:foo />
<my:bar />
<my:baz />
关于java - 子目录中的 JSP 标记文件,使用单个 taglib 前缀。那可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10592434/