我正在尝试重构我的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
答案 0 :(得分:0)
在其他自定义标记中包含标记声明 - 我一直这样做并且语法与您的匹配。
答案 1 :(得分:0)
这绝对合法,并且是标记文件吸引力的一部分。
如果JDeveloper不喜欢它,那就是JDeveloper的问题。您应该考虑使用现代IDE(eclipse,netbeans,intellij),JDeveloper的时间(如果有的话)早已不复存在。