`
lushuaiyin
  • 浏览: 711650 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts----tiles官方例子

 
阅读更多
Struts 2的 Struts 2的瓷砖范例
Struts 2的瓷砖范例

下面的示例演示如何集成Struts 2的和Tiles使用Struts2的瓷砖插件。
在部署描述符先设定Tiles定义文件。 

<context-param>
<param-name> org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG </param-name>
<param-value>/WEB-INF/tiles.xml</param-value>
</context-param>

然后设置的侦听。

<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>

完整的web.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Struts2Example15</display-name>
 
<context-param>
<param-name> org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG </param-name>
<param-value>/WEB-INF/tiles.xml</param-value>
</context-param>
 
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener </listener-class>
</listener>
 
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter. StrutsPrepareAndExecuteFilter
</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
 
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>


tiles.xml文件包含以下的定义。

<?xml version="1.0" encoding="UTF-8" ?>
 
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
 
<tiles-definitions>
 
<definition name="baseLayout" template="/baseLayout.jsp">
<put-attribute name="title"  value="Template"/>
<put-attribute name="header" value="/header.jsp"/>
<put-attribute name="menu"   value="/menu.jsp"/>
<put-attribute name="body"   value="/body.jsp"/>
<put-attribute name="footer"   value="/footer.jsp"/>
</definition>
 
<definition name="welcome" extends="baseLayout">
<put-attribute name="title"  value="Welcome"/>
<put-attribute name="body"   value="/welcome.jsp"/>     
</definition>
 
<definition name="friends" extends="baseLayout">
<put-attribute name="title"  value="Friends"/>
<put-attribute name="body"   value="/friends.jsp"/>     
</definition>
 
<definition name="office" extends="baseLayout">
<put-attribute name="title"  value="Office"/>
<put-attribute name="body"   value="/office.jsp"/>     
</definition>
 
</tiles-definitions>


在这里我们定义一个包含一个标题,标题,菜单,身体和页脚区域的“baseLayout” 。 
头,菜单和页脚地区仍然只有标题和正文内容的变化所有的布局相同。

在baseLayout.jsp页面中,我们创建一个经典瓷砖布局.
------------
header
------------
      |
menu  | body
      |
------------
footer
------------


<%@ 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>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
<tiles:insertAttribute name="title" ignore="true" />
</title>
</head>
<body>
<table border="1" cellpadding="2" cellspacing="2" align="center">
<tr>
<td height="30" colspan="2">
<tiles:insertAttribute name="header" />
</td>
</tr>
<tr>
<td height="250">
<tiles:insertAttribute name="menu" />
</td>
<td width="350">
<tiles:insertAttribute name="body" />
</td>
</tr>
<tr>
<td height="30" colspan="2">
<tiles:insertAttribute name="footer" />
</td>
</tr>
</table>
</body>
</html>
       
header.jsp
<div align="center" style="font-weight:bold">TV shows</div>

menu.jsp
<%@taglib uri="/struts-tags" prefix="s"%>

<a href="<s:url action="friendsLink"/>" >Friends</a><br>
<a href="<s:url action="officeLink"/>" >The Office</a><br>

body.jsp
<p> sample body content.</p>

footer.jsp
<div align="center">© vaannila.com</div>

friends.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <p>More details about the Friends TV show goes here...</p>
    </body>
</html>

office.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <p>More details about the Office TV show goes here...</p>
    </body>
</html>

index.jsp
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=welcomeLink.action">
welcome.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Welcome Guest.
</body>
</html>







在struts.xml文件中创建一个新的瓷砖的结果如下所示。
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
 
<struts>
<package name="default" extends="struts-default">
<result-types>
<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>
<action name="*Link" method="{1}" class="com.vaannila.action.LinkAction">
<result name="welcome" type="tiles">welcome</result>
<result name="friends" type="tiles">friends</result>
<result name="office" type="tiles">office</result>
</action>
</package>
</struts>

对于每个结果,而不是转发到JSP页面转发给Tiles定义。

当您执行的例子,下面的页面会显示。 

---------------
TV showes
---------------
         |
Friends  | Wellcome Guest
The Office      |
---------------
vaannila.com
---------------

menu.jsp页的菜单项,点击每个菜单项的标题和正文内容仅变化。

<%@taglib uri="/struts-tags" prefix="s"%>

<a href="<s:url action="friendsLink"/>" >Friends</a><br>
<a href="<s:url action="officeLink"/>" >The Office</a><br>

每个菜单项被点击时,在不同的 LinkAction类的方法被调用。


package com.vaannila.action;

import com.opensymphony.xwork2.ActionSupport;
 
public class LinkAction extends ActionSupport {
 
private static final long serialVersionUID = -2613425890762568273L;
 
public String welcome()
{
   return "welcome";      
}

public String friends()
{
   return "friends";      
}
 
public String office()
{
   return "office";       
}
}

您需要下面的lib文件运行的例子。

commons-fileupload-1.2.1
commons-io-1.3.2
commons-logging-1.1
freemarker-2.3.13
junit-3.8.1
ognl-2.6.11
struts2-convention-plugin-2.1.6
struts2-core-2.1.6
xwork-2.1.2
 
struts2-tiles-plugin-2.1.6.jar

tiles-api-2.1.2
tiles-compat-2.1.2
tiles-core-2.1.2
tiles-jsp-2.1.2
tiles-servlet-2.1.2
commons-beanutils-1.8.0
1commons-digester-1.8.1



工程目录结构:



分享到:
评论

相关推荐

    struts-tiles-examples

    关于struts-tiles的例子,基础,简单,实用。

    struts-2.3.36-all.zip

    - **Tiles**:Struts2可与Tiles框架集成,提供更复杂页面布局的能力。 通过这个压缩包,你可以搭建一个本地开发环境,进行实践操作,逐步掌握Struts2的使用和配置。同时,结合官方文档,可以深入学习框架的高级特性...

    struts-2.3.34-all框架

    2. **插件和扩展**:Struts 2拥有丰富的插件机制,可以集成各种功能,如Tiles布局、Freemarker模板引擎、i18n国际化支持等。这些插件的jar包在压缩包中也有提供,方便开发者快速启用。 3. **示例应用**:压缩包中的...

    struts中tiles标签简介

    在这个例子中,我们使用了`&lt;tiles:getAsString&gt;`来获取标题,以及`&lt;tiles:insert&gt;`来插入页眉、导航栏、主体内容和页脚。 #### 五、总结 Tiles框架是Struts框架中的一个重要组成部分,它提供了一种简单而强大的...

    struts-2.5.14.1-apps struts2官方例程

    6. **插件和扩展**:探索Struts2的插件系统,例如Tiles插件用于构建复杂的布局,或者FreeMarker/Velocity模板引擎用于生成视图。 7. **异常处理**:学习如何配置全局和Action级别的异常处理策略。 8. **国际化**:...

    Struts2 tiles操作例子

    在探讨“Struts2 tiles操作例子”这一主题时,我们首先需要理解Struts2框架以及tiles插件在其中扮演的角色。Struts2是Apache软件基金会赞助的一个开源Web应用框架,它基于MVC(Model-View-Controller)设计模式,...

    struts2-showcase.rar

    5. **插件体系**:Struts2支持丰富的插件,如Tiles、Freemarker、i18n等,方便扩展和定制应用。 **Struts2-showcase示例** Struts2-showcase项目展示了Struts2的几乎全部功能,包括但不限于: 1. **Action和结果**...

    struts-1.3.10

    此外,可能会有展示如何使用JSP标签库的例子,如struts-bean、struts-html、struts-logic等,这些标签简化了视图层的开发。 标签"struts"表明这是与Struts框架相关的知识,Struts框架的一大特点是其强大的表单验证...

    Struts2中使用Tiles组件

    而Tiles是Struts2的一个重要组成部分,它允许开发者将多个页面组合成一个复杂的页面布局,实现了视图的重用和模块化。在Struts2中使用Tiles组件,可以更有效地管理和构建动态Web应用的用户界面。 首先,我们需要...

    一个简单的应用Struts中tiles的例子

    Struts和Tiles是Java Web开发中的两个重要框架,它们常被结合使用来构建高效、可维护的MVC(模型-视图-控制器)应用程序。在本示例中,我们将深入探讨如何在一个简单的应用中整合Struts与Tiles。 Struts是一个开源...

    struts-2.3.24最新版

    5. **示例(example)**:example部分提供了使用Struts2框架开发的示例应用,这些例子通常涵盖了基本到高级的用法,包括动作映射、结果类型、拦截器链、国际化、动态方法调用等多个方面。开发者可以通过运行和分析...

    tiles+struts2

    Struts2是一个强大的Java web应用程序框架,而Tiles是用于构建MVC(模型-视图-控制器)架构的一个视图组件库。将Tiles与Struts2结合使用,可以更有效地管理和组织网页布局,实现复杂的页面结构和重用内容。在本篇...

    struts小例子

    9. **Tiles框架集成**:Struts可以与Tiles框架集成,用于创建可重用的页面布局,提高开发效率。 10. **Struts2的进化**:尽管Struts1在很多项目中仍然被使用,但Struts2作为其后续版本,引入了更多功能,如更强大的...

    struts2 tiles2 配置例子

    Struts2和Tiles2是两种在Java Web开发中常用的框架,它们可以协同工作,帮助开发者构建复杂的、可重用的页面结构。以下是对Struts2整合Tiles2进行配置的详细步骤和相关知识点的说明。 首先,`tiles2`是Apache Tiles...

    tiles+struts2配置文件

    在Java Web开发中,Struts2是一个非常流行的MVC(模型-视图-控制器)框架,而Tiles则是用于构建复杂的Web页面布局的框架。这两者的结合可以极大地提高开发者的工作效率和应用的用户体验。本篇文章将深入探讨如何在...

    struts-crud.rar

    Struts是Apache软件基金会 Jakarta项目组的一个子项目,它是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,主要用于简化Java Web...这个例子可以帮助开发者快速理解并掌握Struts2在实际项目中的应用。

    struts-2.3.8写的登陆注册(带完整包和建表语句)

    5. **JSP和 Tiles**:在视图层,Struts2通常与JSP(JavaServer Pages)结合使用来生成动态网页。此外,可能还会使用Tiles框架来组织和重用页面布局,提高代码复用性和可维护性。 6. **OGNL(Object-Graph ...

    struts2 tiles实例 eclipse下运行

    接着,你需要下载Struts2和Tiles的相关库,包括struts2-core、struts2-tiles-plugin、tiles-api、tiles-compat以及tiles-core等jar包,这些都应添加到项目的类路径中。 创建一个新的Dynamic Web Project,然后在...

    struts的jar包和例子

    在“struts的jar包和例子”中,`struts-1[1].2.9-bin.rar`是一个包含Struts 1.2.9版本的压缩文件,这个版本发布于2008年,可能包含了以下关键组件: 1. **Struts Core**: 这是框架的核心部分,包括ActionServlet、...

    struts开发需要的包

    4. **Struts Tiles**: `struts-tiles-1.3.5.jar` 是Struts的一个扩展,它提供了布局和复用页面的能力。Tiles定义了一种方式来组合多个JSP页面为一个复杂的视图,这样可以提高代码的重用率和可维护性。 5. **Struts ...

Global site tag (gtag.js) - Google Analytics