`
ayis
  • 浏览: 187190 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JSF中使用Tiles

    博客分类:
  • java
阅读更多

主要有两种方法。一种是使用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的定义
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE faces-config PUBLIC
  "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
  "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
 
<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.调用方法
直接用http://localhost:8080/test.jsf就可以了。标红色部分依你所用的配置可能有些不同。
 
注意以下问题
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定义。
 
当然还可以用shale中的Tiles的支持,参见http://www.js66.com/java/read.php?tid=40&fpage=2
转:http://www.blogjava.net/ljl2004/archive/2006/05/22/47508.html
分享到:
评论

相关推荐

    jsf入门列子和jsf与Tiles结合

    具体集成步骤包括:引入Tiles的依赖库,配置`web.xml`以启用Tiles,编写Tiles的定义文件(如`tiles-defs.xml`),然后在JSF页面中引用Tiles组件。通过这种方式,开发者可以创建可复用的页面片段,并在多个JSF视图...

    myfaces-example-tiles-1.1.6.rar_Tiles_jsf myfaces_jsf tiles exam

    `myfaces-example-tiles-1.1.6.rar` 是一个示例项目,它展示了如何在JavaServer Faces (JSF)环境中集成和使用Apache Tiles框架。这个例子特别关注MyFaces实现,一个流行的JSF实现库。 **JSF(MyFaces)介绍** Java...

    jsf hibernate tiles 整合登录

    Managed Bean 可以直接在JSF 页面中使用,通过EL 表达式绑定到组件。 5. **使用Tiles**:配置tiles-defs.xml 文件定义布局模板和组件。在JSF 页面中,通过使用Tiles 组件标签引用这些定义,实现页面的组合。 6. **...

    jsf tiles richfacse

    **集成过程**:在JSF项目中集成Tiles,需要添加Tiles的依赖,配置Tiles的定义,然后在JSF的页面中引用Tiles的视图ID。对于RichFaces,同样需要添加对应的依赖库,并在JSF的faces-config.xml中注册RichFaces的上下文...

    jsf标签使用文档

    在使用JSF开发应用之前,通常需要在页面顶部声明JSF相关的标签库,以便在后续的代码中引用这些标签库中的组件。常见的JSF标签库声明如下: ```xml &lt;%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%&gt; ...

    myfaces-example-tiles-1.1.6.rar_Tiles_myfaces examp_myfaces-exam

    【描述】"myfaces-example-tiles"是JSF与Tiles的完美结合,提供了良好的示范,可以帮助开发者了解如何在实际项目中使用这两个技术。它鼓励开发者尝试这个示例,以便更好地理解和应用它们的功能。 【标签】中的...

    my-tiles-richfaces

    【标题】"my-tiles-richfaces"是一个项目,它展示了如何在JavaServer Faces(JSF)框架中结合使用Tiles和RichFaces组件库来构建高效、结构化的Web应用程序。这个项目利用了NetBeans IDE的便捷功能来创建和管理代码。...

    Tiles布局

    在实际学习过程中,可以参考此类资源了解如何在实际项目中使用Tiles布局,以及解决可能出现的问题。 在Spring MVC中集成Tiles布局,你需要做以下几步: 1. **添加依赖**:在项目构建工具(如Maven或Gradle)的配置...

    Tiles手册.pdf

    "Tiles手册.pdf"很可能是关于如何使用Tiles框架来组织和设计Struts应用中的页面布局的详细指南。 Tiles框架允许开发者将一个Web页面分解为可重用的组件或“tiles”,这些组件可以是独立的JSP(JavaServer Pages)...

    JSF教程

    `13-JSF-and-JSTL.pdf`可能会探讨如何在JSF应用中使用JSTL标签,以提升代码的可读性和可维护性。 **10. 数据表格** 在Web应用中,展示和操作表格数据是常见的需求。`11-Data-Tables.pdf`可能会讲解如何利用JSF组件...

    学习jsf标签使用文档.pdf

    以下是对学习JSF标签使用文档中的主要知识点的详细说明: 1. **引入JSF核心标签库**: 在页面的开头,通过`&lt;%@ taglib&gt;`指令引入了JSF的核心标签库和HTML标签库。例如: ``` ...

    JSF-Info

    MyFaces Components(11-MyFaces-Components.pdf)可能涵盖了如何使用这个库中的特定组件以及如何优化JSF应用程序的性能。 通过深入学习以上主题,开发者可以掌握JSF的核心特性,从而高效地构建功能丰富的、响应式...

    J2EE JSF 简介

    - **MyFaces**:这是一个开源项目,通过Apache提供,它对JSF的基本UI组件进行了增强,拥有更广泛的UI功能,如集成的Tiles支持、支持JavaScript的菜单和树控件等。 总之,JavaServer Faces作为一种用于构建Web应用...

    JAVA WEB JSF 很好的设计参考方案 页面布局方案

    在探讨JAVA WEB JSF的设计参考方案以及页面布局策略时,我们深入分析了使用JSF进行高效页面设计的方法,尤其关注了两种主流布局方案:利用JSP的`include`功能和集成Tiles框架。这两种方法旨在解决Web应用中页面设计...

    myjsf-tiles-richfacse

    【标题】"myjsf-tiles-...这包括如何配置JSF的上下文,如何使用Tiles定义和组合页面,以及如何利用RichFaces组件进行AJAX增强。同时,理解这个项目也将帮助开发者掌握如何在实际开发中平衡性能、可维护性和用户体验。

    JSF开发规范

    - 避免在JSP页面中使用复杂的逻辑处理,将业务逻辑封装到JavaBean或Servlet中。 ##### 5.3 JSP开发规范 - JSP页面中的脚本元素应尽可能减少,以提高页面的加载速度和响应时间。 - 使用EL表达式和JSTL标签来简化页面...

    struts tiles实现源码

    - **动态属性(Dynamic Attributes)**:Tiles允许在运行时传递动态参数,这些参数可以在页面中使用,增强页面的灵活性。 - **属性传递**:通过`&lt;put&gt;`标签,可以将属性值注入到Tiles定义中,这些值可以在包含的...

    核心 JSF 编程(CHM).rar

    演示如何使用JSF和Tiles自动构建一致的用户界面;提供提示及“如何...”信息,使你很快上手;解释如何集成JSF和数据库,使用目录服务,无线应用以及Web 服务;传授最好的经验和好习惯如使用样式表和消息绑定;覆盖...

    SUN 官方推荐JSF Struts 例子

    JSF的核心是UI组件库,这些组件可以直接在HTML页面中使用,使得开发者可以专注于业务逻辑而不是底层的HTTP交互。 **Struts** 是一个开源的MVC(Model-View-Controller)框架,它是Java EE(Enterprise Edition)...

    JSF Tutorial

    **JSF(JavaServer Faces)教程** JSF(JavaServer Faces...通过本JSF教程的学习,读者将全面了解JSF的各个方面,包括基础概念、组件使用、事件处理、验证机制、扩展功能等,为构建高质量的Java Web应用打下坚实基础。

Global site tag (gtag.js) - Google Analytics