本文主要是介绍Struts1.2、Struts1.3和Struts2.0下Tiles的配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
struts和Tiles配置取决于两者的版本,就是所需的配置文件和文件的写法有些不同。
Struts1.2和Tiles1.2:
如果使用MyEclipse自带的Struts1.2,那么就是使用自带的Tiles1.2
1.将struts.jar下META-INF/tlds/struts-tiles.tld文件复制到WebRoot/WEB_INF下,这是tiles语法解析文件;在web。xml中加入
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
</jsp-config>
2.建立模板:在WebRoot下建立layout文件夹存放tiles模板,建立layout。jsp,填入如下代码
<%@ page contentType="text/html; charset=GBK"%>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%>
<html>
<head>
<title><tiles:insert name="title"/></title>
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/layout.css">
</head>
<body>
<div id="head">
<tiles:insert attribute="head"></tiles:insert>
</div>
<div id="content">
<tiles:insert attribute="content"></tiles:insert>
</div>
</body>
</html>
上面代码将页面简单分成上下两块,head和content
3.建立tiles配置文件:在WebRoot/WEB_INF下面建立tiles-definition.xml(文件名可自己换但是要与struts-config.xml中一致),填写如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
<tiles-definitions>
<definition name="layout_home" path="/layout/layout_home.jsp">//这一块definition是tiles的模板定义,其他的页面可以继承这个模板
<put name="title" type="string" value="XX管理系统" />
<put name="head" value="/header.jsp" />
<put name="content" value="/content.jsp" />
</definition>
<definition name="appload" extends="layout_home">//extends继承了layout_home,head和content可以直接使用。do
<put name="head" value="/login.do" />
<put name="content" value="/appload.jsp" />
</definition>
</tiles-definitions>
4.将tiles与Struts关联:在struts-config。xml的</action-mappings>后加入
<plug-in className="org.apache.struts.tiles.TilesPlugin">//这个类可在struts。jar中找到
<set-property property="definitions-config"
value="/WEB-INF/tiles-definition.xml" />//value就是第三部中的文件名
<set-property property="definitions-debug" value="2" />
<set-property property="definitions-parser-details" value="2" />
<set-property property="definitions-parser-validate"
value="true" />
</plug-in>
struts-config。xml中访问tiles-definition.xml,在action map中加入
<action path="/login"
type="com.test.loginAction">
<forward name="suc" path="login" />
</action>
//path是tiles-definition.xml中一个definition name
Struts1.3和Tiles1.3:
如果使用MyEclipse自带的Struts1.3,那么就是使用自带的Tiles1.3
步骤同struts1.2,只有一点不同,第一步在web。xml中加入
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
Struts2.0和Tiles2.x:
需要tiles包:
tiles-api-2.1.2.jar
tiles-core-2.1.2.jar
tiles-jsp-2.1.2.jar
tiles-servlet-2.1.2.jar(struts2的包当然也要加,我用的是struts2.0.8)
1.tiles-jsp-2.1.2.jar下META-INF/tld/tiles-jsp.tld文件复制到WEB-INF下,这是解析tiles的文件;(tiles2.0时tld文件在tiles-core.jar包下)
2.建立模板jsp:WebRoot/layout/layout.jsp
<%@ page contentType="text/html; charset=GBK"%>
<%@ taglib uri="/WEB-INF/tiles-jsp.tld" prefix="tiles"%>
<html>
<head>
<title><tiles:insertAttribute name="title"/></title>
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/layout.css">
</head>
<body>
<div id="head">
<tiles:insertAttribute name="head"></tiles:insertAttribute>
</div>
<div id="content">
<tiles:insertAttribute name="content"></tiles:insertAttribute>
</div>
</body>
</html>
注意标签和tiles1.x版本的区别
3.建立tiles配置文件,WebRoot/WEB-INF/tiles-definition.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<tiles-definitions>
<definition name="layout" template="/layout/layout_home.jsp">
<put-attribute name="title" type="string" value="xx管理系统" />
<put-attribute name="head" value="/head.jsp" />
<put-attribute name="content" value="/content.jsp" />
</definition>
<!-- home page bakuse-->
<definition name="login" extends="layout">
<put-attribute name="content" value="/login.jsp" />
</definition>
</tiles-definitions>
同样,标签和以前的有区别
4.关联Web。xml和tiles:Web。xml加入下列代码
<context-param>
<param-name>org.apache.tiles.CONTAINER_FACTORY</param-name>
<param-value>
org.apache.struts2.tiles.StrutsTilesContainerFactory
</param-value>
</context-param>
<context-param>
<param-name>
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
</param-name>
<param-value>/WEB-INF/tiles-definition.xml</param-value>
</context-param>
<listener>
<listener-class>
org.apache.struts2.tiles.StrutsTilesListener
</listener-class>
</listener>
5.struts.xml访问tiles-definition.xml,如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="test" namespace="/" extends="tiles-default">
<action name="hello" class="com.struts2.demo.HelloAction">
<result name="suc" type="tiles">
login
</result>
<result name="fal">
/errors.jsp
</result>
</action>
</package>
</struts>
//type="tiles"中login是tiles-definition.xml中一个definition name
这篇关于Struts1.2、Struts1.3和Struts2.0下Tiles的配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!