Pour éviter d'utiliser les scriptlets dans ma page JSP?

J'ai été dit que l'utilisation de scriptlets (<%= ... %>) dans mes pages JSP n'est pas une bonne idée.

Quelqu'un peut-il avec un peu plus de java/jsp expérience s'il vous plaît me donner quelques indications quant à la façon de modifier ce code afin que ses "meilleures pratiques", quoi que cela peut être?

Cette JSP est en fait mon sitemesh principal décorateur page. Fondamentalement, mon web design dispose d'une barre d'onglets et un sous-menu, et je souhaite en quelque sorte mettre en surbrillance l'onglet en cours et de montrer le bon sous-menu en regardant le courant de l'URI de la requête.

<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>

<html>
<head>
  <title>My Events - <decorator:title /></title>
  <link href="<%= request.getContextPath() %>/assets/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>

<div class="tabs">
  <a 
    <%= request.getRequestURI().contains("/events/") ? "class='selected'" : "" %>
    href='<%= request.getContextPath() %>/events/Listing.action'>Events</a>
  <a 
    <%= request.getRequestURI().contains("/people/") ? "class='selected'" : "" %>
    href='<%= request.getContextPath() %>/people/Listing.action'>People</a>
</div>

<div class="submenu">
  <% if(request.getRequestURI().contains("/events/")) { %>
    <a href="Listing.action">List of Events</a>
    |<a href="New.action">New Event</a>
  <% } %>
  <% if(request.getRequestURI().contains("/people/")) { %>
    <a href="Listing.action">List of People</a>
    |<a href="New.action">New Person</a>
  <% } %>  
  &nbsp;
</div>

<div class="body">
  <decorator:body />
</div>

</body>
</html>

Merci à tous

  • En aparté, est " <%= request.getContextPath() %>' une utilisation acceptable des scriptlets qui n'est pas mal à ce point?
  • Vous devriez commencer à utiliser facelets pour la création de modèles. Vous oblige à coder correctement.
  • Dites-vous utiliser facelets au lieu de sitemesh?
  • double possible de stackoverflow.com/questions/3177733/...
InformationsquelleAutor Chris | 2010-02-02