📅  最后修改于: 2020-11-11 05:07:47             🧑  作者: Mango
在本章中,让我们完成将Tiles框架与Struts2集成所涉及的步骤。 Apache Tiles是一个模板框架,旨在简化Web应用程序用户界面的开发。
首先,我们需要从Apache Tiles网站下载tile jar文件。您需要将以下jar文件添加到项目的类路径。
除上述内容外,我们还必须从WEB-INF / lib中的struts2下载中复制以下jar文件。
现在,让我们为Struts-Tiles集成设置web.xml ,如下所示。这里有两点需要注意。首先,我们需要告诉tile,在哪里可以找到tile配置文件tile.xml 。在我们的情况下,它将位于/ WEB-INF文件夹下。接下来,我们需要初始化Struts2下载随附的Tiles侦听器。
Struts2Example15
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
/WEB-INF/tiles.xml
org.apache.struts2.tiles.StrutsTilesListener
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
index.jsp
接下来让我们在/ WEB-INF文件夹下创建带有以下内容的tiles.xml-
接下来,我们在baseLayout.jsp中定义基本的骨架布局。它具有五个可重用/可覆盖的区域。即标题,横幅,菜单,正文和页脚。我们为baseLayout提供默认值,然后创建从默认布局扩展的两个自定义项。 Tiger布局与基本布局类似,不同之处在于它使用Tiger.jsp作为其主体,并使用文本“ Tiger”作为标题。类似地,lion布局与基本布局类似,不同之处在于它使用lion.jsp作为其主体,并使用文本“ Lion”作为标题。
让我们看一下各个jsp文件。以下是baseLayout.jsp文件的内容-
在这里,我们只是放在一起一个具有tile属性的基本HTML页面。我们在需要它们的地方插入tile属性。接下来,让我们创建一个具有以下内容的banner.jsp文件:
menu.jsp文件将包含以下几行作为链接-指向TigerMenu.action和LionMenu.action struts动作。
lion.jsp文件将具有以下内容-
The lion
tiger.jsp文件将具有以下内容-
The tiger
接下来,让我们创建动作类文件MenuAction.java ,其中包含以下内容:
package com.tutorialspoint.struts2;
import com.opensymphony.xwork2.ActionSupport;
public class MenuAction extends ActionSupport {
public String tiger() { return "tiger"; }
public String lion() { return "lion"; }
}
这是一个非常简单的课程。我们声明了两个方法tiger()和lion(),它们分别返回Tiger和lion作为结果。让我们将所有内容放到struts.xml文件中-
tiger
lion
让我们检查一下上面文件中的操作。首先,我们声明了一个名为“ tiles”的新结果类型,因为我们现在正在使用图块而不是纯jsp进行视图技术。 Struts2支持Tiles View结果类型,因此我们将结果类型“ tiles”创建为“ org.apache.struts2.view.tiles.TilesResult”类。
接下来,我们要说是否请求/tigerMenu.action将用户带到Tiger Tile页面,如果请求是/lionMenu.action将用户带到Lion Tile页面。
我们使用一些正则表达式来实现。在我们的动作定义中,我们说任何与模式“ * Menu”匹配的内容都将由该动作处理。匹配方法将在MenuAction类中调用。也就是说,tigerMenu.action将调用Tiger(),而lionMenu.action将调用lion()。然后,我们需要将结果映射到适当的图块页面。
现在,右键单击项目名称,然后单击导出> WAR文件以创建War文件。然后,将此WAR部署在Tomcat的webapps目录中。最后,启动Tomcat服务器并尝试访问URL http:// localhost:8080 / HelloWorldStruts2 / tigerMenu.jsp 。这将产生以下屏幕-
同样,如果转到lionMenu.action页面,您将看到使用相同图块布局的lion页面。