我想在jsp页面中创建一个水平菜单 - 菜单项因用户而异,但除了活动选项卡的外观之外,该站点中每个页面都保持一致 . 看起来一个简单的问题(使用css修改外观)但我无法决定在哪里构建菜单 .
菜单代码:
<ul>
<li><a href="url1">item1</a></li>
<li id="active"><a href="url2">item2</a></li>
</ul>`
在我看来,有三种选择何时检索菜单项:
-
第一次收到任何控制器的HTTP请求时,在会话中存储两个数组 - [url1,url2]和[item1,item2] . 然后将所有jsp页面形成为上面的代码 . jsp必须知道它是针对[url1,url2]数组的url才能插入活动id .
-
在每个控制器中单独创建上面的html . 由于控制器知道它很简单,因此添加活动ID .
-
在没有任何活动ID的情况下创建上面的html,将html存储在会话中并使jsp页面/控制器修改html字符串 .
这些似乎都不是特别开胃 .
有没有人对此有任何建议?
1 回答
由于JSP是所有HTML所属的地方,我会选择选项1,但是使用
List<MenuItem>
而不是两个松散的数组 . 您可以通过${pageContext.request.requestURI}
找到JSP自己的URL . JSTL functions库应该有助于确定URL是否匹配 .