您的位置:首页 > 编程语言 > Java开发

Struts1.2、Struts1.3和Struts2.0下Tiles的配置

2009-03-03 16:55 435 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: