0

我正在开发一个使用 Apache tile2 框架的 struts2 Web 应用程序。该代码在 localhost 上运行良好,但是当我在服务器上启动代码时,它会将平铺页面呈现为纯文本。谁能告诉我问题出在哪里。我的意思是该页面在浏览器端显示为纯文本。

这就是它在浏览器中的呈现方式。截图 - http://i42.tinypic.com/2vnj686.jpg

如果有人有解决方案,请帮助我....

这是我的tiles.xml

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE tiles-definitions PUBLIC
           "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
           "http://tiles.apache.org/dtds/tiles-config_2_1.dtd"  >
    <!--        "http://tiles.apache.org/dtds/tiles-config_2_1.dtd" -->
    <tiles-definitions>

        <definition name="BaseDef" template="/adminpanel/template/BaseLayout.jsp">

            <put-attribute name="title" value="Home Page" />
            <put-attribute name="css" value="/adminpanel/template/extracss.jsp" />
            <put-attribute name="js" value="/adminpanel/template/js.jsp" />
            <put-attribute name="header" value="/adminpanel/template/header.jsp" />
            <put-attribute name="body" value="/adminpanel/template/body.jsp" />
            <put-attribute name="footer" value="/adminpanel/template/footer.jsp" />

    </definition>

        <definition name="LatestMaterial" extends="BaseDef">
            <put-attribute name="title" value="Latest Exam Material " />
            <put-attribute name="css" value="/adminpanel/template/newtablecss2.jsp" />              
            <put-attribute name="body" value="/adminpanel/Pages/latestexammaterial.jsp" />
            </definition>
    </tiles-definitions>

这是我的 BaseLayout.jsp

        <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
            pageEncoding="ISO-8859-1"%>
        <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>

        <tiles:insertAttribute name="css"/>
        <tiles:insertAttribute name="js"/>
         <title><tiles:insertAttribute name="title" /></title>
        </head>
        <body>

            <div id="main">
                        <tiles:insertAttribute name="header"/>
                                        <div id="body">
                                                 <tiles:insertAttribute name="body"/>
                                        </div></div>
                        <tiles:insertAttribute name="footer"/>

        </body>
        </html>

这就是我在 struts.xml 中使用它的方式

   <package name="wz.admin"  extends="struts-default,json-default,tiles-default">
      <action name="LatestMaterial" class="org.wz.admin.LatestMaterialAction">
        <result type="tiles">LatestMaterial</result>
    </action>
    </package>
4

1 回答 1

0

我重新检查了您的代码,我认为问题出在您身上,struts.xml因为一切看起来都很好。我不确定100%,但尝试将您的更改struts.xml为:

    <package name="wz.admin" extends="struts-default" namespace="/">
        <result-types>
            <result-type name="tiles"
                class="org.apache.struts2.views.tiles.TilesResult" />
        </result-types>
        <action name="LatestMaterial" class="org.wz.admin.LatestMaterialAction">
            <result type="tiles">LatestMaterial</result>
        </action>
    </package>

此外,即使success结果是默认结果,您也应该为结果命名,以避免在管理多个结果时产生误解:

    <result name="success" type="tiles">LatestMaterial</result>

这只是我的建筑师在我使用 struts 时给我的一个建议。最后我发现它真的很有用。

于 2013-07-30T06:56:57.250 回答