wiki:ReDesign/JSP

Šablonovací systém Stripes

Rezervační systém a webový video archiv využívají návrhový vzor MVC. Tento vzor je implemontován pomocí Stripes frameworku. V prezentační vrstvě se používají JSP šablony, které tvoří uživatelské rozhraní.

Prezentační vrstva vyuřívá datovou vrstvu, která je implementována v Enterprise Java Beans. V JSP šabloně se odkazujeme na datovou vrstvu pomocí tagu useActionBean. V každé JSP šabloně se odkazujeme na požadovanou datovou vrstvu. Modelovým příkladem může být následující část kódu, ve které se odkazujeme na DefaultActionBean?. Následně k datové vrstvě v JSP šabloně přistupujeme přes proměnnou dab.

<s:useActionBean var="dab" beanclass="cz.muni.fi.lemma.web.reservationsystem.DefaultActionBean" />

2. Provázanost JSP šablon

JSP šablony jsou v systému jsou nadefinovány výchozí layout šablony, které obsahují základní strukturu HTML stránky. Ostatní šablony se na tyto layout šablony odkazují speciálním tagem <s:layout-render>. V layout šabloně jsou nadefinovány určité komponenty, do kterých se načítáobsah z volající JSP šablony. Následující příklad ukazuje definici layout šablony.

<s:layout-definition>
  <!DOCTYPE html>
  <html class="js no-touch" lang="<f:message key="ddlLocale" />">
   <head>
     <title>
       <f:message key="application.name" />
       <c:if test='${title != ""}'>
         &mdash;
         <f:message key="${title}" />
       </c:if>
     </title>
   </head> 
    <body>
      <header class="header">
        Standardní hlavička z MUNI frameworku
      </header>
      <div id="container">
        <s:layout-component name="content"/>
      </div>       
      <footer class="footer">
        Standardní patička z MUNI frameworku
      </footer>
    </body>
  </html>
</s:layout-definition>

V layout šabloně je nadefionvána layout komponenta s názvem content. Do této komponenty je vložen HTML kód z odkazující se šablony. Pro použití layoutové šablony se používá tag <s:layout-render>, do kterého je možné jako atributy vložit proměnné. Tyto proměnné jsou poté využity v layout šabloně. Příkladem je proměnná title, která se v layout šabloně načítá do hlavičky jako titulek stránky. Použitím <s:layout-component> tagu se odkazujeme na komponentu do layout šablony. Do této komponenty se vloží obsah, který je v uzavřen tagu <s:layout-component>. Použití šablony ukazuje následující příklad.

<s:layout-render name="/_layouts/${ab.userRole}-layout.jsp" title="issuemasters.create" issuemasterActive="is-active">
  <s:layout-component name="content">
    HTML kód
  </s:layout-component>
</s:layout-render>
Last modified 18 months ago Last modified on 04/27/19 14:43:15