Frage an java, jsp, jstl – Wie kann eine JSP-Layoutvorlage am besten erstellt werden? [Duplikat]

32

Mögliche Duplikate:
JSP-Tricks, um das Templating zu vereinfachen?

Ich bin neu in JSPs und Servlets. Ich frage mich, ob es eine gute Möglichkeit gibt, einen Layout-JSP zu erstellen und auf ähnlichen JSP-Seiten wie asp.net-Masterseiten wiederzuverwenden.

Ich habe es gegoogelt, manche Leute sagen, sie benutzen Vorlagenhttp://java.sun.com/developer/technicalArticles/javaserverpages/jsp_templates das verwendet JSTL-Tag-Bibliothek. Es heißt, einen Tag wie diesen zu setzen:

<code><%@ taglib uri='/WEB-INF/tlds/template.tld' prefix='template' %>
</code>

Aber ich bekomme eine Fehlermeldung (weil sich jstl.jar und standard.jar im Verzeichnis WEB-INF / lib / befinden).

Einige sagen jedoch, dass JSTL-Templates Probleme damit habenStreben ODER Fliesen ODER ??? ...... JSP-Vorlagenlösung

Ich würde mich freuen, wenn ich den besten Weg kenne.

BEARBEITEN: Ich muss das Layout der Seite in Teile wie Inhalt, Kopfzeile usw. aufteilen und diese Teile auf der Seite festlegen, die die Layoutvorlage verwendet, genau wie die asp.net-Masterseite.

danke ich finde den ersten link superstackoverflow.com/questions/1296235/… Ashkan
mögliche Lösungstackoverflow.com/questions/1296235/… javaworld.com/javaworld/jw-09-2000/jw-0915-jspweb.html    Ich kenne den besten Weg nicht shareef

Deine Antwort

1   die antwort
84

Fügen Sie Folgendes in WEB-INF / tags / genericpage.tag ein

<code><%@tag description="Overall Page template" pageEncoding="UTF-8"%>
<%@attribute name="header" fragment="true" %>
<%@attribute name="footer" fragment="true" %>
<html>
  <body>
    <div id="pageheader">
      <jsp:invoke fragment="header"/>
    </div>
    <div id="body">
      <jsp:doBody/>
    </div>
    <div id="pagefooter">
      <jsp:invoke fragment="footer"/>
    </div>
  </body>
</html>
</code>

So verwenden Sie dies:

<code><%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>

<t:genericpage>
    <jsp:attribute name="header">
      <h1>Welcome</h1>
    </jsp:attribute>
    <jsp:attribute name="footer">
      <p id="copyright">Copyright 1927, Future Bits When There Be Bits Inc.</p>
    </jsp:attribute>
    <jsp:body>
        <p>Hi I'm the heart of the message</p>
    </jsp:body>
</t:genericpage>
</code>

Das macht genau das, was du denkst!

Dies war Teil einer großartigen Antwort von Will Hartung aufdieser Link.

Verwandte Fragen