JSP菜单设计建议
我希望在 jsp 页面中创建一个水平菜单 - 菜单项因用户而异,但除了活动选项卡的外观外,该用户在网站的每个页面上都保持一致。乍一看似乎是一个足够简单的问题(使用CSS修改外观),但我无法决定在哪里构造菜单。
菜单代码:
<ul>
<li><a href="url1">item1</a></li>
<li id="active"><a href="url2">item2</a></li>
</ul>`
据我所知,何时检索菜单项有 3 种选择:
- 首次收到任何控制器的 HTTP 请求时,在会话中存储两个数组 - [url1, url2] 和 [item1, item2]。然后将所有的jsp页面都变成上面的代码。 jsp 必须知道要针对 [url1, url2] 数组创建的 url,才能插入活动 id。
- 在每个控制器中分别创建上述 html。由于控制器知道它自己的 url,因此添加活动 ID 很简单。
- 创建上面没有任何活动 ID 的 html,将 html 存储在会话中,并使 jsp 页面/控制器修改 html 字符串。
这些似乎都不是特别令人胃口大开。
有人对此有什么建议吗?
I'm looking to create a horizontal menu in a jsp page - the menu items vary by user but stay consistent over every page in the site for that user apart from the appearance of the active tab. Seems a simple enough problem at first (the appearance is modified using css) but I can't decide where to construct the menu.
Menu code:
<ul>
<li><a href="url1">item1</a></li>
<li id="active"><a href="url2">item2</a></li>
</ul>`
As I see it there are 3 choices of when to retrieve menu items:
- Upon receipt of HTTP Request to any controller for the first time store two arrays in the session - [url1, url2] and [item1, item2]. Then make the all the jsp pages form this into the above code. The jsp would have to know it's url to make against the [url1, url2] array in order to insert the active id.
- Create the above html separately in each controller. Since a controller knows it's own url, it's simple to add the active id.
- Create above html without any active id, store the html in the session and make either the jsp pages/controllers modify the html string.
None of these seem particularly appetising.
Does anyone have any advice on this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于所有 HTML 都属于 JSP,因此我会选择选项 1,但随后使用
List
而不是两个松散数组。您可以通过${pageContext.request.requestURI}
找到JSP自己的URL。 JSTL 函数 库应该有助于确定 URL 是否匹配。Since a JSP is where all the HTML belongs, I'd go for option 1, but then with a
List<MenuItem>
instead of two loose arrays. You can find JSP's own URL by${pageContext.request.requestURI}
. The JSTL functions library should be helpful in determining whether the URL matches.