2

对于我的一个 Web 应用程序,我希望我的所有页面都显示为它们的顶部、左侧和底部部分是相同的。
为此,我计划使用 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>
4

2 回答 2

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"/>  

希望这能解决您的问题。

于 2013-02-01T12:27:21.690 回答
2

根据你的我已经做了一个示例项目并上传到 GitHub 你可以从这个url下载

https://github.com/neetu2umca/Tiles_Demo

于 2013-01-24T07:01:14.013 回答