小编典典

包含页面中的Displaytag

jsp

我想在包含的页面中使用displaytag,但遇到困难。我有一个主页,其中包括标题jspf,菜单jspf和其他jspf,具体取决于所选菜单(在menu.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一个,然后我可以在网页上看到一个文本:"<%@ taglib prefix="display" uri="http://displaytag.sf.net" %>"

目前,我已经有了一个可行的解决方案(使用<html>,必须在页面中包含<body>一个<%@ taglib>元素),但是我认为我的设计模式相当糟糕。我应该如何解决呢?谢谢,维克多


阅读 277

收藏
2020-06-10

共1个答案

小编典典

Struts2 <s:include>标记包括servlet或JSP页面的结果。如果要包括JSP片段,请使用JSP include指令<%@ include file="..." %>

要使用<s:include>标签,请将页面重命名为.jsp,并将taglib指令(w / o
<html><body>)和表一起放入包含的页面。

2020-06-10