2016-05-16 10 views
0

Passing habe ich ein JSP-Fragment, das wie folgt aussieht:ein gerendertes JSP-Fragment als Argument an einem anderen JSP

<div> 
    <div> 
     <!-- 1 --> 
     <h1>Hello Everyone!</h1> 
    </div> 
    <div> 
     <!-- 2 --> 
     <jsp:include page="./anotherJspFragment.jsp"> 
      <jsp:param name="someName" value="someValue"/> 
     </jsp:include> 
    </div> 
</div> 

Dieses Fragment mehrmals innerhalb einer JSP-Seite wiederholt wird - es kopiert und eingefügt wurde, mit nur die Teile mit der Bezeichnung "1" und "2" ändern sich zwischen jedem Auftreten.

Jede Instanz dieses Fragments include ist eine andere JSP-Seite mit verschiedenen Argumenten.

Manche sehen wie folgt aus:

 <jsp:include page="./firstJspFragment.jsp" /> 

Während andere wie folgt aussehen:

 <jsp:include page="./secondJspFragment.jsp"> 
      <jsp:param name="someName1" value="someValue1"/> 
      <jsp:param name="someName2" value="someValue2"/> 
     </jsp:include> 

Ich mag ein wiederverwendbares JSP-Fragment erstellen, die alle Text Markup enthält, die ich verwenden können, Reduzieren Sie die Duplizierung. Dieses JSP-Fragment müsste ein gerendertes JSP-Fragment als Argument verwenden (firstJspFragment.jsp oder secondJspFragment.jsp, usw.). Ist das möglich? Oder gibt es einen anderen Ansatz, den ich verwenden kann?

Antwort

0

Ok, es sieht also so aus, als würde man einen Tag in WEB-INF/tags erstellen, der z.B. myTag.tag, die die Textauszeichnungs enthält

http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags5.html

Sie können dann die gerenderte Seite in als den Körper gelangen, z.B.

<test:myTag title="Hello Everyone"> 
    <jsp:include page="./firstJspFragment.jsp" /> 
</test:myTag> 

wird dieses Fragment JSP dann an dem Punkt, in dem Tag, wo <jsp:doBody /> occurrs, beispielsweise wiedergegeben werden,

<%@ attribute name="title" required="true" %> 

<div> 
    <div> 
     <!-- 1 --> 
     <h1>${title}</h1> 
    </div> 
    <div> 
     <!-- 2 --> 
     <jsp:doBody /> 
    </div> 
</div> 
Verwandte Themen