📜  Struts 2和Tiles集成

📅  最后修改于: 2020-11-11 05:07:47             🧑  作者: Mango


在本章中,让我们完成将Tiles框架与Struts2集成所涉及的步骤。 Apache Tiles是一个模板框架,旨在简化Web应用程序用户界面的开发。

首先,我们需要从Apache Tiles网站下载tile jar文件。您需要将以下jar文件添加到项目的类路径。

  • Tiles-api-xyzjar
  • Tiles-compat-xyzjar
  • 瓷砖芯xyzjar
  • tiles-jsp-xyzjar
  • tile-servlet-xyzjar

除上述内容外,我们还必须从WEB-INF / lib中的struts2下载中复制以下jar文件。

  • 共同体Beanutils xyzjar
  • 公地人-消化器-xyjar
  • struts2-tiles-plugin-xyzjar

现在,让我们为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文件的内容-


         <insertattribute name="title" ignore="true"></insertattribute>
      
   

   
      






在这里,我们只是放在一起一个具有tile属性的基本HTML页面。我们在需要它们的地方插入tile属性。接下来,让我们创建一个具有以下内容的banner.jsp文件:


menu.jsp文件将包含以下几行作为链接-指向TigerMenu.action和LionMenu.action struts动作。

" Tiger
" Lion

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页面。