对于我的某个网络应用程序,我希望我的所有页面都显示为其顶部,左侧和底部部分相同。
为此,我计划使用Struts Tiles配置。但这对我来说是行不通的
可能是我在配置它们时犯了一些错误
请指导我。以下是我在“tiles-def.xml”中的配置
<definition name="mainLayout" path="/pages/layout/classicLayout.jsp">
<put name="header" value="/pages/layout/header.jsp" />
<put name="footer" value="/pages/layout/footer.jsp" />
<put name="menu" value="/pages/layout/menu.jsp" />
<put name="body" value="/pages/layout/bodyLayout.jsp" />
</definition>
<definition name="outputPage" extends="mainLayout">
<put name="title" value="HELLO" />
<put name="body" value="/pages/Welcome.jsp" />
</definition>
我希望每当“Welcome.jsp”显示时,它的顶部(即标题),底部(即页脚)和左侧部分(即菜单)来自“mainLayout”磁贴的指定设置。但这并不符合我的期望。
修改
我的Struts-config文件包含以下设置
<global-forwards>
<!-- Default forward to "Welcome" action -->
<!-- Demonstrates using index.jsp to forward -->
<forward
name="welcome"
path="/Welcome.do"/>
</global-forwards>
<!-- =========================================== Action Mapping Definitions -->
<action-mappings>
<!-- Default "Welcome" action -->
<!-- Forwards to Welcome.jsp -->
<action
path="/Welcome"
forward="/pages/Welcome.jsp"/>
</action-mappings>
答案 0 :(得分:2)
根据您已完成示例项目并上传到GitHub,您可以从this url下载
答案 1 :(得分:2)
如果我理解你的问题,你想控制tiles_defs.xml页面的表示
我在你的代码中看到的是你几乎已经完成了
因为你想要“Welcome.jsp”作为“outputPage”的主体,那么你必须再有一个jsp(比如说“tilesTest.jsp”),它们又包含“outputPage”的定义。
此外,您需要更改前向标记(在struts配置中)并将其指向该新页面
您的新页面包含以下代码
<%@page language="java" pageEncoding="shift-jis"%>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<%@ taglib uri="/tags/struts-tiles" prefix="tiles" %>
<tiles:insert definition="outputPage" flush="true" />
你的struts-config.xml文件将是这样的
<action
path="/Welcome"
forward="/pages/tileTest.jsp"/>
希望这能解决您的问题。