0

私は Tiles を初めて使用するので、これはおそらく非常に簡単な質問です。タイルを使用せずに Java / Spring 3 / JSP を使用して Web アプリケーションを作成しましたが、これを使用すると生活がずっと楽になることに気づきました。

これまでのところ、1 つの側面で少し混乱しています。それは、レイアウトの定義です。私の問題は、オンラインで見た例では、情報 (タグとタグを含む) を含む layout.jsp を定義していることです。

私の質問は、「layout.jsp」ファイルは一般的な「万能」タイプのファイルであるはずですが、レイアウト テンプレートを使用する必要がある別のファイル (welcome.jsp など) を作成するとどうなるかということです。 、しかし、さらにタグを定義する必要があります...それらをwelcome.jspファイル内で定義すると、レンダリングされたJSPファイルは正しくフォーマットされません...つまり:

<head>
  <!-- This is content from the layout.jsp file -->
  <title>Welcome</title>
  <link rel="shortcut icon" href="images/favicon.ico"/>
  <script type="text/javascript">
     // some javascript
  </script>
</head>

<body>
  <!-- This is content from the welcome.jsp file which is malformed -->
  <head>
    <script src="js/jquery.mousewheel.min.js"></script>
  </head>
</body>

どんな助けでも大歓迎です。

ここに私の tiles.xml があります:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
       "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
  <definition name="baseLayout" template="/WEB-INF/jsp/layout/layout.jsp">
    <put-attribute name="title" value="" />
    <put-attribute name="header" value="/WEB-INF/jsp/layout/header.jsp" />
    <put-attribute name="body" value="" />
    <put-attribute name="footer" value="/WEB-INF/jsp/layout/footer.jsp" />
  </definition>

  <definition name="videos" extends="baseLayout">
    <put-attribute name="title" value="Videos" />
    <put-attribute name="body" value="/WEB-INF/jsp/videos.jsp" />
  </definition>

</tiles-definitions>

レイアウト.jsp

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<%@ include file="../tracking.jsp" %>
<!DOCTYPE HTML>
<html>
<head>
  <title><tiles:insertAttribute name="title" ignore="true" /></title>

  <link rel="shortcut icon" href="images/favicon.ico"/>

  <link href="css/templatemo_style.css" rel="stylesheet" type="text/css" />
  <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.css" media="screen" />

  <script type="text/javascript" src="js/jquery.js"></script>
  <script type="text/javascript" src="js/jquery.lightbox-0.5.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
</head>
<body>
  <tiles:insertAttribute name="header" />
  <tiles:insertAttribute name="body" />
  <tiles:insertAttribute name="footer" />
</body>
</html>
4

1 に答える 1