- Struts 2 Tiles集成
- Struts 2 Tiles集成的8个步骤
网页可以包含许多部分(称为图块), 例如页眉, 左窗格, 右窗格, 主体部分, 页脚等。在图块框架中, 我们通过” 布局管理器” 页面管理所有图块。
瓷砖框架的优势
tile框架具有以下优点:
- 通过集中页面自定义我们只能按单个页面(集中页面)自定义所有页面的布局。
- 代码可重用性页眉或页脚可以在许多页面中使用。因此, 它节省了编码。
- 易于修改如果修改了任何部分(平铺), 则无需更改很多页面。
- 易于删除如果删除了页面的任何部分(平铺), 则无需从所有页面中删除代码。我们可以从布局管理器页面中删除图块。
文章图片
创建图块应用程序的步骤
步骤如下:
- 在应用程序中添加图块库
- 在web.xml文件中定义Struts2TilesListener
- 创建输入页面(index.jsp)
- 创建动作类
- 在包中扩展tile-default包, 并将所有结果类型定义为struts.xml文件中的tile
- 创建tile.xml文件并定义所有tile定义
- 创建LayoutManager页面
- 创建视图组件
如果你使用的是myeclipse IDE, 则可以通过右键单击项目-> 构建路径-> 添加库-> 添加Myeclipse库-> 选择Struts 2 Tiles库-> 确定来添加图块库。
如果使用的是eclipse或Netbeans IDE, 则需要在项目中添加所需的tile库。
下载struts2 jar文件
2)在web.xml文件中定义Struts2TilesListener
在web.xml文件中提供侦听器类Struts2TilesListener的条目。
web.xml
<
?xml version="1.0" encoding="UTF-8"?>
<
web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<
welcome-file-list>
<
welcome-file>
index.jsp<
/welcome-file>
<
/welcome-file-list>
<
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>
<
listener>
<
listener-class>
org.apache.struts2.tiles.StrutsTilesListener<
/listener-class>
<
/listener>
<
/web-app>
3)创建输入页面(index.jsp)
index.jsp
<
%@ taglib uri="/struts-tags" prefix="s" %>
<
s:form action="login">
<
s:textfield name="name" label="Name">
<
/s:textfield>
<
s:password name="password" label="Password">
<
/s:password>
<
s:submit value="http://www.srcmini.com/login">
<
/s:submit>
<
/s:form>
4)创建动作类
该动作类包含一个字段名称并定义了execute方法。
Login.java
package com.srcmini;
public class Login {
private String name, password;
//getters and setterspublic String execute(){
if(password.equals("admin")){
return "success";
}
else{
return "error";
}
}
}
5)继承tile-default包, 并在struts.xml中将所有结果类型定义为tile
该xml文件定义了一个包含一个动作和两个结果的程序包。
struts.xml
<
?xml version="1.0" encoding="UTF-8" ?>
<
!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<
struts>
<
package name="abc" extends="tiles-default" >
<
action name="login" class="com.srcmini.Login">
<
result name="success" type="tiles">
login-success<
/result>
<
result name="error" type="tiles">
login-error<
/result>
<
/action>
<
/package>
<
/struts>
6)创建Tiles.xml文件并定义所有tile定义
tile.xml文件必须位于WEB-INF目录内。
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="login-success" template="/layoutmanager.jsp">
<
put-attribute name="title" value="http://www.srcmini.com/Welcome Page"/>
<
put-attribute name="body" value="http://www.srcmini.com/login-success.jsp"/>
<
/definition>
<
definition name="login-error" template="/layoutmanager.jsp">
<
put-attribute name="title" value="http://www.srcmini.com/Login Error"/>
<
put-attribute name="body" value="http://www.srcmini.com/login-error.jsp"/>
<
/definition>
<
/tiles-definitions>
7)创建LayoutManager页面
这是布局管理器页面。它使用tile的getAsString标记包括字符串资源, 并使用tile的insertAttribute标记包括页面资源。
layoutmanager.jsp
<
%@ 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>
<
title>
<
tiles:getAsString name="title" />
<
/title>
<
/head>
<
body>
<
%@include file="header.jsp" %>
<
tiles:insertAttribute name="body" />
<
%@ include file="footer.jsp" %>
<
/body>
<
/html>
8)创建视图组件
视图组件很多, 例如header.jsp, footer.jsp, welcome.jsp等。
header.jsp
<
h2 style="background-color:pink;
text-align:center;
">
It is header tile<
/h2>
<
hr/>
footer.jsp
<
hr>
<
h2 style="background-color:pink;
text-align:center;
">
It is footer tile<
/h2>
login-success.jsp
<
%@ taglib uri="/struts-tags" prefix="s" %>
Welcome, <
s:property value="http://www.srcmini.com/name"/>
<
/textrea>
<
/div>
<
hr/>
<
strong>
login-error.jsp<
/strong>
<
div class="codeblock">
<
textarea name="code" class="xml" >
Sorry, username or password error!
<
jsp:include page="index.jsp">
<
/jsp:include>
下载此示例(由Eclipse IDE开发)
下载此示例(由myeclipse IDE开发)
输出
文章图片
密码不是管理员, 因此将显示错误页面。
文章图片
如果密码为admin, 将显示成功页面。
文章图片
如何在Struts 2应用程序中定义多个图块文件
【Struts 2 Tiles Framework集成教程示例】要定义多个图块, 你需要在web.xml文件中添加以下条目。
<
context-param id="struts_tiles">
<
param-name>
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG<
/param-name>
<
param-value>
/WEB-INF/tiles1.xml, /WEB-INF/tiles2.xml<
/param-value>
<
/context-param>
推荐阅读
- Struts 2 i18n用法示例图解教程
- Struts 2实现注册表单示例
- Struts 2迭代器标签示例
- e551. 精简的Applet
- android view 转Bitmap 生成截图
- e555. 在Applet中播放音频
- vue 外卖app 引入阿里图标
- UVA12113-Overlapping Squares(二进制枚举)
- app测试之耗电量测试