10 Stimmen

JSP, kann es ähnlich funktionieren wie yield, layout, content_for in Ruby/Rails/Erb

Ich versuche herauszufinden, wie ich JSP-Code am effektivsten wiederverwenden kann. Ich liebe die Art und Weise, wie Rails/erb auf diese Weise funktioniert ... mit yield, layout, content_for

Beispiel:

main_layout.erb.html

<html>
  <head><%= yield :head %></head>
  <body><%= yield %></body>
</html>

verwenden.

<% content_for :head do %>
<title>A simple page</title>
<% end %>

<p>Hello, Rails!</p>

in Controller

layout "main_layout"

Wie kann ich dies mit JSP am besten erreichen (ohne zusätzliche Frameworks zu verwenden)? Ich weiß über JSP einschließen, aber das ist nicht wirklich das gleiche wie Ertrag. Irgendwelche Vorschläge?

Danke

17voto

Steven Benitez Punkte 10767

Ich bin nicht damit vertraut, was yield y content_for bieten, sondern JSP-Tag-Dateien ermöglichen Ihnen eine robustere Art der Seitenvorlage als JSP-Includes.

Beispiel:

layout.tag

<%@ tag body-content="scriptless" %>
<%@ attribute name="pageTitle" required="true" type="java.lang.String" %>

<html>
<head>
    <title>${pageTitle}</title>
</head>
<body>
    <jsp:doBody/>
</body>
</html>

Eine einzelne JSP

<%@ taglib prefix="z" tagdir="/WEB-INF/tags" %>
<z:layout pageTitle="A simple page">
    <p>Hello, JSP!</p>
</z:layout>

Legen Sie Ihr layout.tag einfach in das Verzeichnis /WEB-INF/tags. Sie können jedes verfügbare Präfix verwenden, das Sie wollen, ich habe für das Beispiel einfach "z" verwendet.

0voto

Ophidian Punkte 9475

Sie haben zwar erwähnt, dass Sie keine Frameworks zusätzlich zum Standard-JSP wünschen, aber die Layout Funktionalität des Streifen Rahmen macht so ziemlich genau das, was Sie wollen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X