主要有两种方法。一种是使用myfaces中的JspTilesViewHandlerImpl,另一种方法是用struts1.1中的TilesServlet。
方法一:使用myfaces中的spTilesViewHandlerImpl。例程参见MyFaces的tiles例子
1.在web.xml中加一个参数定义,用于指定tiles定义文件
<context-param>
<param-name>tiles-definitions</param-name>
<param-value>/WEB-INF/config/tiles-defs.xml</param-value>
</context-param>
2.在JSF的配置文件中加一个view-handle,使JSF能处理tiles的定义
<faces-config>
<application>
<view-handler>org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl</view-handler>
<message-bundle>resource</message-bundle>
<locale-config>
<default-locale>zh</default-locale>
</locale-config>
</application>
</faces-config>
3.定义tiles的定义文件和模板等,这与Struts中完全一样。
tiles-defs.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="/test.tiles" path="/tiles/layout.jsp">
<put name="title" type="string" value="welcome"/>
<put name="page" value="/test.jsp"/>
</definition>
</tiles-definitions>
layout.jsp的内容如下:
<%@ page session="false" contentType="text/html;charset=utf-8"%>
<%@ taglib uri="
http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="/WEB-INF/tld/struts-tiles.tld" prefix="tiles" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title><tiles:getAsString name="title"/></title>
</head>
<body>
<f:view>
下面是Tile插入的内容:<br/>
<f:subview id="page">
<tiles:insert attribute="page" flush="false"/>
</f:subview>
</f:view>
</body>
</html>
test.jsp的内容如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<%@ taglib uri="
http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="
http://java.sun.com/jsf/core" prefix="f" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<h:outputText value="这是一个简单的Tile示例!"/>
</body>
</html>
4.调用方法
注意以下问题:
1.<tiles:insert>标签中的属性 flush="false"
2.<definition>中属性 name="/test.tiles" 与test.jsp相一致,这样请求/test.jsf时,会自动应用test.tiles这个tiles定义。
3.无论怎么用tiles插入片断,必须保证f:view只能有一个,并在最顶层。
4.在bea workshop中编辑每一个片断时,为了不出现乱码必须有以下内容。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
5.要想在bea workshop中使用可视的编辑器编辑tiles定义文件tiles-defs.xml,必须在web.xml中配置struts,在struts配置文件中配置tiles插件。具体方法请参见bea workshop生成的struts项目。
方法二,使用tilesServlet(在struts1.1中有,在Struts1.2中没有)
1.在web.xml中配置tilesServlet,指定tiles的配置文件tiles-def.xml文件
<servlet>
<servlet-name>tileServlet</servlet-name>
<servlet-class>org.apache.struts.tiles.TilesServlet</servlet-class>
<load-on-startup>3</load-on-startup>
<init-param>
<param-name>definitions-config</param-name>
<param-value>/WEB-INF/config/tiles-defs.xml</param-value>
</init-param>
</servlet>
2.定义tiles的定义文件和模板等,这与Struts中完全一样。(与方法一一样)
3.调用,不能像方法那样直接使用。
必须定义一个包装文件testTiles.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<%@ taglib uri="/WEB-INF/tld/struts-tiles.tld" prefix="tiles" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<tiles:insert definition="/test.tiles"/>
</body>
</html>
在这个文件中调用tiles定义。
转:http://www.blogjava.net/ljl2004/archive/2006/05/22/47508.html
分享到:
相关推荐
具体集成步骤包括:引入Tiles的依赖库,配置`web.xml`以启用Tiles,编写Tiles的定义文件(如`tiles-defs.xml`),然后在JSF页面中引用Tiles组件。通过这种方式,开发者可以创建可复用的页面片段,并在多个JSF视图...
`myfaces-example-tiles-1.1.6.rar` 是一个示例项目,它展示了如何在JavaServer Faces (JSF)环境中集成和使用Apache Tiles框架。这个例子特别关注MyFaces实现,一个流行的JSF实现库。 **JSF(MyFaces)介绍** Java...
Managed Bean 可以直接在JSF 页面中使用,通过EL 表达式绑定到组件。 5. **使用Tiles**:配置tiles-defs.xml 文件定义布局模板和组件。在JSF 页面中,通过使用Tiles 组件标签引用这些定义,实现页面的组合。 6. **...
**集成过程**:在JSF项目中集成Tiles,需要添加Tiles的依赖,配置Tiles的定义,然后在JSF的页面中引用Tiles的视图ID。对于RichFaces,同样需要添加对应的依赖库,并在JSF的faces-config.xml中注册RichFaces的上下文...
在使用JSF开发应用之前,通常需要在页面顶部声明JSF相关的标签库,以便在后续的代码中引用这些标签库中的组件。常见的JSF标签库声明如下: ```xml <%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%> ...
【描述】"myfaces-example-tiles"是JSF与Tiles的完美结合,提供了良好的示范,可以帮助开发者了解如何在实际项目中使用这两个技术。它鼓励开发者尝试这个示例,以便更好地理解和应用它们的功能。 【标签】中的...
【标题】"my-tiles-richfaces"是一个项目,它展示了如何在JavaServer Faces(JSF)框架中结合使用Tiles和RichFaces组件库来构建高效、结构化的Web应用程序。这个项目利用了NetBeans IDE的便捷功能来创建和管理代码。...
在实际学习过程中,可以参考此类资源了解如何在实际项目中使用Tiles布局,以及解决可能出现的问题。 在Spring MVC中集成Tiles布局,你需要做以下几步: 1. **添加依赖**:在项目构建工具(如Maven或Gradle)的配置...
"Tiles手册.pdf"很可能是关于如何使用Tiles框架来组织和设计Struts应用中的页面布局的详细指南。 Tiles框架允许开发者将一个Web页面分解为可重用的组件或“tiles”,这些组件可以是独立的JSP(JavaServer Pages)...
`13-JSF-and-JSTL.pdf`可能会探讨如何在JSF应用中使用JSTL标签,以提升代码的可读性和可维护性。 **10. 数据表格** 在Web应用中,展示和操作表格数据是常见的需求。`11-Data-Tables.pdf`可能会讲解如何利用JSF组件...
以下是对学习JSF标签使用文档中的主要知识点的详细说明: 1. **引入JSF核心标签库**: 在页面的开头,通过`<%@ taglib>`指令引入了JSF的核心标签库和HTML标签库。例如: ``` ...
MyFaces Components(11-MyFaces-Components.pdf)可能涵盖了如何使用这个库中的特定组件以及如何优化JSF应用程序的性能。 通过深入学习以上主题,开发者可以掌握JSF的核心特性,从而高效地构建功能丰富的、响应式...
- **MyFaces**:这是一个开源项目,通过Apache提供,它对JSF的基本UI组件进行了增强,拥有更广泛的UI功能,如集成的Tiles支持、支持JavaScript的菜单和树控件等。 总之,JavaServer Faces作为一种用于构建Web应用...
在探讨JAVA WEB JSF的设计参考方案以及页面布局策略时,我们深入分析了使用JSF进行高效页面设计的方法,尤其关注了两种主流布局方案:利用JSP的`include`功能和集成Tiles框架。这两种方法旨在解决Web应用中页面设计...
【标题】"myjsf-tiles-...这包括如何配置JSF的上下文,如何使用Tiles定义和组合页面,以及如何利用RichFaces组件进行AJAX增强。同时,理解这个项目也将帮助开发者掌握如何在实际开发中平衡性能、可维护性和用户体验。
- 避免在JSP页面中使用复杂的逻辑处理,将业务逻辑封装到JavaBean或Servlet中。 ##### 5.3 JSP开发规范 - JSP页面中的脚本元素应尽可能减少,以提高页面的加载速度和响应时间。 - 使用EL表达式和JSTL标签来简化页面...
- **动态属性(Dynamic Attributes)**:Tiles允许在运行时传递动态参数,这些参数可以在页面中使用,增强页面的灵活性。 - **属性传递**:通过`<put>`标签,可以将属性值注入到Tiles定义中,这些值可以在包含的...
演示如何使用JSF和Tiles自动构建一致的用户界面;提供提示及“如何...”信息,使你很快上手;解释如何集成JSF和数据库,使用目录服务,无线应用以及Web 服务;传授最好的经验和好习惯如使用样式表和消息绑定;覆盖...
JSF的核心是UI组件库,这些组件可以直接在HTML页面中使用,使得开发者可以专注于业务逻辑而不是底层的HTTP交互。 **Struts** 是一个开源的MVC(Model-View-Controller)框架,它是Java EE(Enterprise Edition)...
**JSF(JavaServer Faces)教程** JSF(JavaServer Faces...通过本JSF教程的学习,读者将全面了解JSF的各个方面,包括基础概念、组件使用、事件处理、验证机制、扩展功能等,为构建高质量的Java Web应用打下坚实基础。