Struts 2 Tiles 框架集成教程示例

2025年3月17日 | 阅读 3 分钟

通过与 Tiles 框架集成,我们可以自定义 Struts 2 应用程序的布局。

一个网页可以包含多个部分(称为 tile),例如页眉、左侧窗格、右侧窗格、主体部分、页脚等。在 Tiles 框架中,我们通过布局管理器页面来管理所有 tile。


Tiles 框架的优势

Tiles 框架具有以下优势

  • 通过集中式页面进行自定义 我们可以仅通过单个页面(集中式页面)自定义所有页面的布局。
  • 代码可重用性 一个单独的部分,例如页眉或页脚,可以在多个页面中使用。因此,它可以节省编码。
  • 易于修改 如果修改了任何部分(tile),则无需更改多个页面。
  • 易于删除 如果删除了页面的任何部分(tile),则无需从所有页面中删除代码。我们可以从布局管理器页面中删除 tile。
struts 2 with tiles example

创建 Tiles 应用程序的步骤

步骤如下

  1. 在应用程序中添加 Tiles 库
  2. 在 web.xml 文件中定义 Struts2TilesListener
  3. 创建输入页面 (index.jsp)
  4. 创建 Action 类
  5. 在您的包中扩展 tiles-default 包,并在 struts.xml 文件中将所有结果类型定义为 tile
  6. 创建 tiles.xml 文件并定义所有 tile 定义
  7. 创建 LayoutManager 页面
  8. 创建 View 组件

1) 在应用程序中添加 Tiles 库

如果您正在使用 Myeclipse IDE,则可以通过右键单击项目 -> Build Path -> Add Library -> Add Myeclipse Library -> 选择 Struts 2 tiles 库 -> 确定,来添加 Tiles 库。

如果您正在使用 Eclipse 或 Netbeans IDE,则需要在项目中添加所需的 Tiles 库。


2) 在 web.xml 文件中定义 Struts2TilesListener

在 web.xml 文件中提供监听器类 Struts2TilesListener 的条目。

web.xml

3) 创建输入页面 (index.jsp)

index.jsp

4) 创建 action 类

此 action 类包含一个字段 name 并定义了 execute 方法。

Login.java

5) 继承 tiles-default 包,并在 struts.xml 中将所有结果类型定义为 tile

此 xml 文件定义了一个包,其中包含一个 action 和两个结果。

struts.xml

6)创建 tiles.xml 文件并定义所有 tiles 定义

tiles.xml 文件必须位于 WEB-INF 目录中。

tiles.xml

7) 创建 LayoutManager 页面

它是布局管理器页面。它使用 Tiles 的 getAsString 标签来包含字符串资源,并使用 Tiles 的 insertAttribute 标签来包含页面资源。

layoutmanager.jsp

8)创建 View 组件

有许多 view 组件,例如 header.jsp、footer.jsp、welcome.jsp 等。


header.jsp

footer.jsp

login-success.jsp

输出

struts 2 and tiles framework output 2

密码不是 admin,因此将显示错误页面。


struts 2 and tiles framework output 3

如果密码是 admin,则将显示成功页面。

struts 2 and tiles framework output 4

如何在 Struts 2 应用程序中定义多个 Tiles 文件

要定义多个 Tiles,您需要在web.xml文件中添加以下条目。