2013-02-19 2 views
-1

Я сделал проект Struts (Struts2) с некоторыми основными страницами, такими как Login.jsp, Main.jsp и т.д.Добавление навигационных ссылок в jsp?

Я сделал навигацию таким образом, есть лучший способ сделать это?

Добавлен список холдингового пути URL-адреса в качестве атрибута в сессии (Done в классе сервлета/действия)

private void initNavigationMenu(){ 
    navigationMenu = new HashMap<String, String>(); 
    navigationMenu.put("Main", "/main.jsp"); 
    navigationMenu.put("Login", "/login.jsp"); 
    navigationMenu.put("Registration", "/registration.jsp"); 
} 

@Override 
public void contextInitialized(ServletContextEvent event) { 
    initNavigationMenu(); 
    event.getServletContext().setAttribute("menu", 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> 

Определенно есть лучший способ сделать это, может кто-то предложить мне правильный способ реализации.

+0

Вы создаете список URL ссылок и текст и показываете их. –

+0

Я бы не использовал 'HashMap', потому что он неупорядочен. Было бы лучше использовать ['LinkedHashMap'] (http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html) –

+0

Также, используя [' '] (http : //docs.oracle.com/javaee/5/tutorial/doc/bnakh.html#bnakn) было бы лучше создать ссылки. –

ответ

0

Предполагается, что объект navigationMenu содержит дорожки действий. Затем в каждом действии вы создаете объект страницы так же, как получение ссылки на пункты меню и вставляете этот объект в запрос. Таким образом, он будет доступен через ${page}.

И когда вы представляете страницу JSP, вы знаете, что представляет собой объект страницы вместо сравнения строк servletPath.

Если вам необходимо управлять постоянными объектами страниц, это лучше сделать с большей частью CMS. Некоторые CMS даже используют уникальный идентификатор страницы в качестве параметра в URL-адресе для ссылки на страницу, которую они показывают. Но это не обязательно. Все, что вам нужно, это просто объект страницы, ссылающийся на путь действия.

Смежные вопросы