Wie vermeide ich Scriptlets in meiner JSP-Seite?

Mir wurde gesagt, dass die Verwendung von scriptlets (<%= ... %>) in meiner JSP-Seiten ist nicht so eine tolle Idee.

Kann jemand mit ein bisschen mehr java - /jsp-Erfahrung, bitte geben Sie mir einige Hinweise, wie Sie zu ändern Sie diesen code, damit Ihr mehr 'best practice', was immer das sein mag?

Diese JSP ist eigentlich mein sitemesh main decorator Seite. Im Grunde ist mein web design hat eine Registerkarte, Streifen und ein Untermenü, und ich möchte irgendwie markieren Sie die aktuelle Registerkarte, und zeigen Sie das richtige Untermenü, indem man die aktuellen request-URI.

<%@ 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>

Danke an alle

Kommentar zu dem Problem
Als ein beiseite, ist '<%= request.getContextPath() %> " eine akzeptable Verwendung von scriptlets, das ist nicht verpönt, so viel? Kommentarautor: Chris
Beginnen sollte man mit facelets für das templating. Zwingt Sie den code korrekt. Kommentarautor: Andrew Dyster
Sagen Sie, verwenden facelets statt sitemesh? Kommentarautor: Chris
mögliche Duplikate von stackoverflow.com/questions/3177733/... Kommentarautor: Bozho

InformationsquelleAutor der Frage Chris | 2010-02-02

Schreibe einen Kommentar