我想在包含的页面中使用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>元素)并将标记库元素放入main.jsp中时,displaytag表没有出现...当我删除<html>和<body>元素并留下一个标记库时,我可以在网页上看到一个文本:"<%@ taglib prefix="display" uri="http://displaytag.sf.net" %>"
目前,我已经有了一个有效的解决方案(通过在页面中使用<html>,<body> a <%@ taglib>元素,这些元素必须包括在内),但我认为我的设计模式相当糟糕。我该如何解决这个问题呢?谢谢,维克多
发布于 2013-02-05 20:26:10
servlet <s:include>标签包含servlet或Struts2页面的结果。如果希望包含JSP片段,请使用JSP指令<%@ include file="..." %>。
要使用标记库标记,请将页面重命名为.jsp,并且只将标记库指令(w/o <html>,<body>)和表一起放入包含的页面中。
发布于 2013-02-05 20:55:36
你应该使用
<jsp:include page="mySnippet.jsp"/>其中mySnippet.jsp是一个部分Jsp,没有DTD,没有头,没有主体,只有您需要的HTML片段。
需要时,在其中声明标签库(struts-tags等)...
https://stackoverflow.com/questions/14707167
复制相似问题