Struts tile没有按照我的要求显示

时间:2013-01-23 04:25:07

标签: java struts-1

对于我的某个网络应用程序,我希望我的所有页面都显示为其顶部,左侧和底部部分相同。
为此,我计划使用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>

2 个答案:

答案 0 :(得分:2)

根据您已完成示例项目并上传到GitHub,您可以从this url下载

https://github.com/neetu2umca/Tiles_Demo

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

希望这能解决您的问题。