我的jsp有效吗?

时间:2015-08-13 10:19:12

标签: xml struts tiles

我正在struts2应用程序中编写导航磁贴。根据java代码中的一些逻辑,我想要一个导航链接来显示“selected”类。让我们说有3个链接,我目前在页面B上。请参阅下面的html示例:

<nav>
   <a href="urlA">Page A</a>
   <a class="selected" href="urlB">Page B</a>
   <a href="urlC">Page C</a>
</nav>

此HTML代码将从带有struts2 if语句的.jsp文件派生,以确定当前是否选择了该链接:

<a 
  <s:if test="%{navigation == 'pageA'}">
    class="selected"
  </s:if>
href="linkA">PageA</a>
<a 
  <s:if test="%{navigation == 'pageA'}">
    class="selected"
  </s:if>
href="linkA">PageA</a>
<a 
  <s:if test="%{navigation == 'pageA'}">
    class="selected"
  </s:if>
href="linkA">PageA</a>

我的问题是 - 这在技术上是一个有效的jsp吗?它工作并产生我想要的结果。它绝对不是有效的xml,但是jsp文件必须验证为xml,并且任何人都可以想到我可能遇到的任何问题。

另一种方法是写:

<s:if test="%{navigation == 'pageB'}">
  <a class="selected" href="urlB">Page B</a>
</s:if>
<s:else>
  <a href="urlB">Page B</a>
</s:else>

作为一个例子,我100%肯定替代方案更好,但在某些情况下,原始风格似乎不那么复杂。

1 个答案:

答案 0 :(得分:1)

如果有效,则有效,否则会出现JSP编译错误。

你的错误是认为HTML标签和JSP标签是等价的;他们不是。您无法嵌套JSP标记。嵌套HTML标记是不相关的:JSP只在服务器端有用,它只是一个模板。 JSP不关心HTML标签,只关心JSP标签。

HTML仅在客户端方面很重要,到那时JSP标签已经消失。

无关,但第一个例子基本上是难以辨认的。这应该全部包含在自定义标签中,用JS或其他任何方式处理,以减少这种混乱。