您的位置:首页 > 编程语言 > Java开发

Struts Tiles框架实例

2008-11-27 16:49 323 查看
 

Struts Tiles框架实例

网上的例子很多我自己顺便总结了一下希望给大家作为参考...

首先 在WEB-INF下建立 "tiles-defs.xml"

<?xml version="1.0" encoding="GB2312" ?>

<!DOCTYPE tiles-definitions PUBLIC

       "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"

       "http://jakarta.apache.org/struts/dtds/tiles-config.dtd">

<tiles-definitions>

    <definition name="index-definition" template="/layout.jsp">

        <put name="title" value="爬爬" />

        <put name="header" value="/tiles/header.jsp" />

        <put name="menu" value="/tiles/menu.jsp" />

        <put name="body" value="/tiles/cBody.jsp" />

        <put name="footer" value="/tiles/footer.jsp" />

    </definition>

        <definition name="sub-page" extends="index-definition">

    <put name="test" value="/tiles/test.jsp" />   

    <!--以上元素表示在继承主页面的基础上增加子页面-->

    </definition>

</tiles-definitions>

以上的子jsp页面先建立tiles文件夹在WebRoot下,然后把那些jsp子页面放在该文件夹下

struts-config.xml:

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

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 

1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>

  <data-sources />

  <form-beans />

  <global-exceptions />

  <global-forwards />

  <action-mappings />

  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />

  <plug-in className="org.apache.struts.tiles.TilesPlugin" >

  <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />

  <set-property property="definitions-parser-validate" value="true" />

</plug-in>

</struts-config>

TilesPlugin插件用于加载Tiles组件的配置文件。在plug-in元素中包含几个set-property子元素,用

于向TilesPlugin插件传入附加的参数:

    ·definitions-config参数:指定Tiles组件的配置文件,如果有多个配置文件,则它们之间用逗号

分隔。

    ·definitions-parser-validate参数:指定XML解析器是否验证Tiles配置文件,可选值包括true和

false,默认值为true。 

模板页layout.jsp(放在WebRoot下):

<%@ page contentType="text/html; charset=UTF-8"%>

<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>

<html>

    <head>

        <title></title>

    </head>

    <body>

        <table width="768px" height="800px" border="2" align="center">

        

            <tr>

                <td colspan="2" align="center" valign="top" width="768px" 

height="100px" bgcolor="#80ff80"><tiles:getAsString name="title"/>

                    <tiles:insert attribute="header"></tiles:insert>

                </td>

            </tr>

            <tr>

                <td align="center"  width="150px" height="800px" 

bgcolor="#00ff00">

                    <tiles:insert attribute="menu"></tiles:insert>

                </td>

                <td align="right"  width="618px" height="800px" 

bgcolor="#ff80c0">

                    <tiles:insert attribute="body"></tiles:insert>

                </td>

            </tr>

            <tr>

                <td colspan="2" bgcolor="#00ff40" height="100px">

                    <tiles:insert attribute="footer"></tiles:insert>

                </td>

            </tr>

        </table>

    </body>

</html>

测试页 index.jsp(放在WebRoot下):

<%@ page language="java" pageEncoding="UTF-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>

<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>

<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html:html lang="true">

  <head>

    <html:base />

    

    <title>index.jsp</title>

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">    

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

    <!--

    <link rel="stylesheet" type="text/css" href="styles.css">

    -->

  </head>

  

  <body>

    This a test page. <br>

    <tiles:insert definition="index-definition"/>

    

  </body>

</html:html>

在web.xml文件中不用配置保持默认就可以

********以上代码我以调试成功 祝大家好运********

-----------------------------------------------------------

如果Tiles组件代表完整的网页,可以直接通过Struts Action来调用Tiles组件。例如,如果希望通过

Struts Action来调用定义的名为"index-definition"的Tiles组件,可以在Struts配置文件中配置如下

Action 映射: 

<action-mappings>

<action   path="/index"

          type="org.apache.struts.actions.ForwardAction"

          parameter="index-definition">

 </action>

</action-mappings> 

 通过Struts Action来调用Tiles组件,可以充分发挥Struts框架负责流程控制的功能。此外,可以减

少JSP文件的数目。例如,如果直接通过Struts Action来调用名为"index-definition"的Tiles组件,

就不必再创建index.jsp文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息