ele*_*ype 11 java jsp jsp-tags taglib
我目前用我的.tag文件声明:
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
Run Code Online (Sandbox Code Playgroud)
标记文件路径的示例:
/WEB-INF/tags/test.tag
Run Code Online (Sandbox Code Playgroud)
我这样使用它们:
<t:test oneAttributeKey="oneAttributeValue">
some content...
</t:test>
Run Code Online (Sandbox Code Playgroud)
我的问题:我不想把我的所有标签文件都放在一个文件夹"/ WEB-INF/tags"中.
我宁愿把它们放在不同的子目录中:
/ WEB-INF /标签/用户/
/ WEB-INF /标签/ widgetsA /
/ WEB-INF /标签/ 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" %>
Run Code Online (Sandbox Code Playgroud)
我希望使用单个"t"前缀的示例:
<t:users/onetag oneAttributeKey="oneAttributeValue">
some content...
</t:users/onetag>
Run Code Online (Sandbox Code Playgroud)
是否存在类似的解决方案?
更新:BalusC表明,通过在单个.tld中定义所有标记文件,可以只使用一个前缀.我想我的问题还不够明确:我想知道是否可以在多个子目录中使用标记文件,而不必在任何地方指定路径,除非在使用它们的元素中(例如: <T:用户/ 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
Run Code Online (Sandbox Code Playgroud)
但这迫使我在多个@tablib或.tld中声明每个子目录的路径,我觉得这有点不方便.我会忍受它,但我认为它可以改进.
Bal*_*usC 17
将它们定义为放在文件夹<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>
Run Code Online (Sandbox Code Playgroud)
在JSP中使用它如下所示
<%@taglib prefix="my" uri="http://example.com/tags" %>
...
<my:foo />
<my:bar />
<my:baz />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11957 次 |
| 最近记录: |