我想在包含的页面中使用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 prefix="display" uri="http://displaytag.sf.net" %>"
目前,我已经有了一个可行的解决方案(使用<html>,必须在页面中包含<body>一个<%@ taglib>元素),但是我认为我的设计模式相当糟糕。我应该如何解决呢?谢谢,维克多
<%@ taglib>
Struts2 <s:include>标记包括servlet或JSP页面的结果。如果要包括JSP片段,请使用JSP include指令<%@ include file="..." %>。
<s:include>
<%@ include file="..." %>
要使用<s:include>标签,请将页面重命名为.jsp,并将taglib指令(w / o <html>,<body>)和表一起放入包含的页面。
.jsp