0

含まれているページでdisplaytagを使用したいのですが、問題があります。(menu.jspfで)選択したメニューに応じて、ヘッダーjspf、メニューjspf、およびその他のjspfを含むメインページがあります。

main.jspf

<html><body>
<table border="0">
  <tr>
     <td colspan="2"><s:include value="header.jspf"/></td>
  </tr>
  <tr>
     <td><s:include value="menu.jspf"/></td>
     <td><s:include value="%{page}"/></td>
  </tr>
</table>
</body></html>

「その他」のjspf(Struts2アクションで「page」変数の値を変更します)

<%@ taglib prefix="display" uri="http://displaytag.sf.net" %>
<%@ taglib prefix="s" uri="/struts-tags" %> 
<html>
<link rel="stylesheet" href="./css/screen.css" type="text/css"/>
<link rel="stylesheet" href="./css/displaytag.css" type="text/css"/>
<body>

   <display:table name="${usageList}" pagesize="2" requestURI="menu_admin_freq.action" sort="list" class="mars">
      <display:column property="nameBackendService" title="BackendService" sortable="true"/>
      <display:column property="frequency" title="Frequency" sortable="true"/>
   </display:table>

</body></html>

ご覧のとおり、完全なJSPページを含めるのは良い考えではないと思います...しかし、フラグメント(<html>and<body>要素なし)のみを含めて、taglib要素をmain.jspに入れようとすると、displaytagテーブルは表示されません...要素<html><body>要素を削除してtaglibを残した場合、Webページにテキストが表示されました。"<%@ taglib prefix="display" uri="http://displaytag.sf.net" %>"

現時点では、(ページ内に含める必要のある要素を使用して)実用的な解決策<html><body>あり<%@ taglib>ますが、私のデザインパターンはかなり悪いと思います。これをどのように整理すればよいですか?ありがとう、Viktor

4

2 に答える 2

1

Struts2<s:include>タグには、サーブレットまたはJSPページの結果が含まれます。JSPフラグメントを含める場合は、JSPincludeディレクティブを使用します<%@ include file="..." %>

<s:include>タグを使用するには、ページの名前をに変更し、 .jsptaglibディレクティブ(w / o <html><body>)のみをテーブルとともに含まれているページに配置します。

于 2013-02-05T12:26:09.773 に答える
1

あなたは使用する必要があります

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

ここmySnippet.jspで、は部分的なJspであり、DTD、ヘッド、ボディはなく、必要なHTMLフラグメントのみが含まれています。

必要に応じて、タグライブラリ(struts-tagsなど)を宣言します...

于 2013-02-05T12:55:35.980 に答える