在jsp中添加导航链接?
我制作了一个Struts项目(Struts2),其中包含一些基本页面,如在jsp中添加导航链接?,jsp,web-applications,servlets,struts,jstl,Jsp,Web Applications,Servlets,Struts,Jstl,我制作了一个Struts项目(Struts2),其中包含一些基本页面,如Login.jsp,Main.jsp等 我已经这样做了导航,有没有更好的方法呢 添加了一个列表,其中包含url路径作为会话中的属性(在servlet/action类中完成) private void initNavigationMenu(){ navigationMenu=新建HashMap(); navigationMenu.put(“Main”,“/Main.jsp”); navigationMenu.put(“Logi
Login.jsp
,Main.jsp
等
我已经这样做了导航,有没有更好的方法呢
添加了一个列表,其中包含url路径作为会话中的属性(在servlet/action类中完成)
private void initNavigationMenu(){
navigationMenu=新建HashMap();
navigationMenu.put(“Main”,“/Main.jsp”);
navigationMenu.put(“Login”,“/Login.jsp”);
navigationMenu.put(“Registration”,“/Registration.jsp”);
}
@凌驾
公共void contextInitialized(ServletContextEvent事件){
初始化导航菜单();
event.getServletContext().setAttribute(“菜单”,navigationMenu);
}
在JSP页面中,我比较字符串
<div id="nav_container">
<ul id="nav">
<c:forEach items="${menu}" var="item">
<c:choose>
<c:when test="${pageContext.request.servletPath == item.value}">
<li><a id="nav_active" href="" style="color: #000000">${item.key}</a> </li>
</c:when>
<c:otherwise>
<b>
<li><a href="/projectname${item.value}">${item.key}</a></li>
</b>
</c:otherwise>
</c:choose>
</c:forEach>
</ul>
</div>
肯定有更好的方法可以做到这一点,有人能给我建议正确的实现方法吗。假设
导航菜单
对象包含操作路径。然后在每个操作中生成一个页面对象,就像获取对菜单项的引用一样,并将该对象放入请求中。因此,它将通过${page}
提供
当呈现JSP页面时,您知道页面对象是什么,而不是比较servletPath
的字符串
如果您需要管理持久页面对象,最好使用大多数CMS。一些CMS甚至在URL中使用唯一的页面id作为参数来引用他们正在显示的页面。但这不是必须的。您所需要的只是引用操作路径的页面对象 创建链接URL和文本列表并显示它们。我不会使用
HashMap
,因为它是无序的。它将更好地使用一个也,使用将更好地创建链接。
<div id="nav_container">
<ul id="nav">
<c:forEach items="${menu}" var="item">
<c:choose>
<c:when test="${pageContext.request.servletPath == item.value}">
<li><a id="nav_active" href="" style="color: #000000">${item.key}</a> </li>
</c:when>
<c:otherwise>
<b>
<li><a href="/projectname${item.value}">${item.key}</a></li>
</b>
</c:otherwise>
</c:choose>
</c:forEach>
</ul>
</div>