我目前有我的 .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/标签/用户/
/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 中定义所有标记文件,可以只使用一个前缀。我想我的问题还不够清楚:我想知道是否可以在多个子目录中使用标签文件,而不必在任何地方指定每个标签文件的路径,除了在使用它们的元素中(例如:“ <t:users/onetag")!
我不喜欢 JSP 标记的一点是,它们的行为与常规 JSP 文件非常不同,即使它们实际上共享非常相似的内容。事实上,我什至决定将我所有的 jsp 文件放在 /WEB-INF/tags/ 文件夹中,这样它们就与标签文件并排(我必须为此选择 /WEB-INF/tags/,因为这出于某种原因,标签文件的文件夹是必需的)!我不明白为什么我的一些包含 HTML 的文件会进入 /WEB-INF/jsp/ 而其他一些文件会进入 /WEB-INF/tags/!!
我希望能够将 jsp 和标记文件分组到目录中,具体取决于它们的相关内容!例子 :
/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
但这迫使我在多个@tablib 或.tld 中声明每个子目录的路径,我觉得这有点不方便。我会忍受它,但我认为它可以改进。