我可以在同一个/ WEB-INF / tags文件夹中使用另一个* .tag文件中的* .tag吗?

时间:2010-04-03 00:03:18

标签: java jsp jdeveloper tagfile

我正在尝试重构我的JSP代码,以便通过 * .tag 文件重用一个小的条件测试条件。

我的UI中有一些重要部分依赖于请求中存在的对象的双状态属性的值。假设该属性为“gender”,对象的类型为Person。

就像我说的,我想简化&使用标记将性别属性的测试集中在一起。为此,我创建了两个标记文件:

/WEB-INF/tags/if-male.tag
/WEB-INF/tags/if-female.tag

现在,我的另一个小点在我的应用程序中重复出现;让我们说是对我的网站用户的称呼。有了这个想法,我创建了一个这样的标签:

/WEB-INF/tags/salutation.tag

你可以想象,我试图在salutation.tag文件中使用if-male / if-female测试来输出'Mrs.'或'先生'像这样:

<%@ tag body-content="empty" %>
<%@ taglib prefix="g" uri="/WEB-INF/tags" %>
<g:if-male> Mr. </g:if-male>
<g:if-female> Mrs. </g:if-female>

salutation.tag 文件中使用if-male / if-female标签是否合法?

我已尝试过这样的安排,但看起来JDeveloper 10.1.3.4编译器混淆了,无法处理salutation.tag标签调用同一'库'中的其他两个标签(/ WEB-INF /下的文件夹)标签)。

该引用在Jetty 6中完美运行,如果我直接将应用程序部署到OC4J而不依赖于JDeveloper来预编译所有JSP,它看起来也能正常工作。

我希望有人可以对此有所了解。

谢谢,

YJ

2 个答案:

答案 0 :(得分:0)

在其他自定义标记中包含标记声明 - 我一直这样做并且语法与您的匹配。

答案 1 :(得分:0)

这绝对合法,并且是标记文件吸引力的一部分。

如果JDeveloper不喜欢它,那就是JDeveloper的问题。您应该考虑使用现代IDE(eclipse,netbeans,intellij),JDeveloper的时间(如果有的话)早已不复存在。