刘政道 - 应用程序框架

《31天学会CRM项目开发(C#编程入门及项目实战)》作者,IT经理,程序员
  博客园  :: 新随笔  :: 联系 :: 管理

第六课:Xhtml开发基础知识

Posted on 2010-02-23 14:25  刘政道  阅读(929)  评论(0编辑  收藏  举报
1、对html标记应当比较熟悉。
2、对javascript或vbscript脚本语言应 当有一定了解。
3、熟悉JSF标签。
4、 熟悉Richfaces标签。

下 面介绍xhtml文件基本知识点:

一 个user.xhtml文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">
<ui:composition template="/templates/#{initParam['template']}/main.xhtml">
    <ui:define name="title">用户管理</ui:define>
    <ui:define name="body">
        <rich:tabPanel selectedTab="#{myMain.tab}" switchType="client">
            <rich:tab name="tab1" label="全部">
                <ui:include src="http://#{header['host']}/modules/userTable.xhtml" />
            </rich:tab>
            <rich:tab name="tab2" label="编辑" rendered="#{login.userHasOp['010501']=='true'}">
                <ui:include src="http://#{header['host']}/modules/userEdit.xhtml" />
            </rich:tab>
        </rich:tabPanel>
    </ui:define>
</ui:composition>
</html>

<htm>l 中必须添加xmlns:a4j=http://richfaces.org/a4j和 xmlns:rich=http://richfaces.org/rich,这样才能使用Richfaces标签。
网 页正文必须包括在<ui:composition></ui:composition>之间。之外的数据会被忽略。
<ui:composition template="main.xhtml">这个标签中的template属性的值表明当前这个user.xhtml文件所使用的模板。使用模板非常方 便。
<ui:define name="title">用户管理</ui:define>这个标签指的是将“用户管理”放置在模板 main.xhtml中名称为“title”的区块。
<rich:tabPanel selectedTab="#{myMain.tab}" switchType="client">这个标签显示的是一个选项卡,其selectedTab设定的是当前被选择的选项卡,其switchType属 性可设置成server、client和ajax三种,这里selectedTab的值用javabean动态设定,所以switchType必须设置成 client,否则报错。
在xhtml中加入javabean属性或方法需要在符号#{} 中填写表达式,史称EL表达式,例如本例中的#{myMain.tab},指的是类myMain.tab属性。
<ui:include src="http://#{header['host']}/modules/userTable.xhtml" />指的是在这个区域包含另一个xhtml文件。这个标签很常用。
# {header['host']}这个表达式返回的当前主机名,含端口号,例如10.130.129.8:8080,header是系统变量,类似的还有 param。


现在看看模板main.xhtml的内容
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
       xmlns:a4j="http://richfaces.org/a4j"
      xmlns:f="http://java.sun.com/jsf/core">
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8"/>
<title> </title>
</head>
<body>
    <ui:insert name="title" />
    <ui:insert name="body"/>
</body>
</html>
<ui:insert name="title" >标签对应的是user.xhtml中<ui:define name="title"> </ui:define>