我想在包含的页面中使用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>
和<body>
元素)时将taglib元素放入main.jsp中,displaytag表格没有出现...当我删除<html>
和<body>
元素并将taglib保留为1时,我可以在网页上看到一个文本:{ {1}}
目前我已经找到了一个有效的解决方案(在页面中使用"<%@ taglib prefix="display" uri="http://displaytag.sf.net" %>"
,<html>
个<body>
元素,但我认为我的设计非常糟糕图案。我应该如何解决这个问题?
谢谢,
尤
答案 0 :(得分:1)
Struts2 <s:include>
标记包含servlet或JSP页面的结果。如果要包含JSP片段,请使用JSP include指令<%@ include file="..." %>
。
使用<s:include>
代码将您的网页重命名为.jsp
,并将只有taglib指令(不含<html>
,<body>
)和您的表格放入包含的网页。
答案 1 :(得分:1)
你应该使用
<jsp:include page="mySnippet.jsp"/>
其中mySnippet.jsp
是部分Jsp,没有DTD,没有头,没有正文,只有你需要的HTML片段。
如果需要,在其中声明tag-libraries(struts-tags等)......