JSF学习笔记超详细,从入门到精通,持续更新中~

JSF笔记


1、JSF概述

JavaServer Faces (JSF) 是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。它提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器端应用程序的开发。由于由Java Community Process (JCP) 推动,属于Java EE 5中的技术规范,而受到了厂商的广泛支持。它是一种页面表示技术。

1.1 JSF设计目标

解决

  • 冗长且重复的编码
  • 需要处理超文本传输协议(HTTP)请求和相应

1.2 JSF优点

  1. 易于创建用户界面
  2. 易于验证和数据管理
  3. 分离表示和业务逻辑
  4. 可扩展的架构
  5. 多个客户及设备的支持

1.3 JSF架构概述

1.3.3 JSF支持的渲染套件

  • HTML渲染套件:用于JSF UI组件的默认渲染套件
  • WML渲染套件:使用WML浏览器访问JSF页面的客户机
  • 可缩放向量图形(SVG)渲染套件:显示包含图形和动画的UI组件

1.3.4 JSF生命周期

  • 恢复视图阶段
  • 应用请求处理阶段
  • 处理验证阶段
  • 更新模型值阶段
  • 渲染响应阶段

1.3.5 JSF应用程序的组件

  • Ui 组件
  • 渲染器
  • 验证器
  • 转换器
  • 受管bean
  • 事件和侦听器
  • 消息
  • 导航

2、开发用户界面

2.1 JSF标记库

2.1.1 HTML标记库

在最上方添加命名空间 xmlns:h="http://xmlns.jcp.org/jsf/html"

  1. 头部和主体

    <h:head>头部</h:head>
    <h:body>
        主体,一般别的标签都在这个里
    </h:body>
    
  2. 表单

    <h:form>
            
    </h:form>
    
  3. 输入

    1.普通文本输出框
    <h:inputText id="it1" value="pass data" required="true" maxlength="5" title="this is inputText">
        <!-- outputLabel 与inputText不结合使用 -->
        <h:outputLabel value="Enter password"/>
    </h:inputText><br/>
    
    2.文本输入域
    <h:inputTextarea id="ita1" cols="20" rows="20">
        <h:outputLabel value="Enter TextMsg:"/>
    </h:inputTextarea><br/>
    
    3.密码输入框
    <h:inputSecret value="wwww">
        <h:outputLabel value="Enter password"/>
    </h:inputSecret><br/>
    
    4.隐藏输入框
    <h:inputHidden value="hidden"/>
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ivysbRqD-1632830824311)(image-20210928193227211.png)]

  4. 输出

    1. 普通输出框
    <h:outputText value="today 0915"/> <br/>
    
    3.链接输出
    <h:outputLink value="http://www.baidu.com">
        <h:outputText value="Jump to Baidu"/>
    </h:outputLink> <br/>
    
    3. 转换输出
    <!-- 中间不能有单引号,否则不能正确显示 -->
    <h:outputFormat value="Hello What is Your Favourite {0}? {1}? {2}?">
        <f:param value="Basketball"/>
        <f:param value="Coding"/>
        <f:param value="become better"/>
    </h:outputFormat>
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IaPMvA4o-1632830824314)(image-20210928193237652.png)]

  5. 命令

    显示的是按钮
    <h:commandButton action="pge1" value="Submit"/> <br/>
    
    显示的是超链接文本
    <h:commandLink action="pge1" value="JumpLink"/>
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gWyCK7WF-1632830824316)(image-20210928193254859.png)]

  6. 选择

    单选
     <h:selectOneMenu value="passdata">
         <f:selectItem itemLabel="王昭君" itemValue="1"/>
         <f:selectItem itemLabel="吕布" itemValue="2"/>
    </h:selectOneMenu>
    
    <h:selectOneRadio value="passdata">
        <f:selectItem itemLabel="王昭君" itemValue="FS"/>
        <f:selectItem itemLabel="吕布" itemValue="ZS"/>
    </h:selectOneRadio>
    
    <h:selectOneListbox value="passdata" id="sol1" size="3">
        <f:selectItem itemLabel="王昭君" itemValue="FS"/>
        <f:selectItem itemLabel="吕布" itemValue="ZS"/>
    </h:selectOneListbox>
    
    多选
    <h:selectManyMenu>
        <f:selectItem itemLabel="王昭君" itemValue="FS"/>
        <f:selectItem itemLabel="吕布" itemValue="ZS"/>
    </h:selectManyMenu>
    
    <h:selectManyCheckbox value="haha">
        <f:selectItem itemLabel="王昭君" itemValue="FS"/>
        <f:selectItem itemLabel="吕布" itemValue=
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JSF将是J2EE5.0所包含的web开发框架,这应该是第一个成为jcp标准,并且随j2eesdk一起发布的web框架,可以看出sun对它的期望很高。JSF最大的竞争对手是tapestry,是apache的产品,但是apache又弄出了个myfaces,是对jsf标准的一个实现。也许你也和我一样,在jsf和tapestry之间犹豫很久,将来从apache的态度上应该可以看出二者的走向。在tss上有一篇比较jsf 1.0与tapestry 3.0的文章,内容很扎实到位:http://www.theserverside.com/articles/article.tss?l=JSFTapestry JSF的竞争对手不是struts/webwork之流,它们基本上已经是不同阶段上的东西了,放在一起比较意义不大。 JSF的开发流程和asp.net所倡导的code behind方式很相似,核心是事件驱动,组件和标签的封装程度非常高,很多典型应用已经不需要开发者去处理http。页面操作会被自动映射到对应的java bean,后台逻辑只需要同java bean发生交互。整个过程是通过“依赖注入(DI)”来实现的,看来这是目前解偶合的最佳途径啊,spring的影响真是深远。不过正式因为jsf采用了这样的方式,导致开发工作和以前的jsp/struts等都有非常大的不同,需要一定的时间去学习学习之前建议先对依赖注入有比较清楚的认识,可以参考我的learn Spring in spring系列的第一篇。 本系列将以两个例子来讲解jsf的基本开发,第一个例子当然是hello world。目前可用的jsf ide不多,ibm要到06年才能放出支持jsf的wtp版本。所以我们的例子基本以手写为主,这样也能让我们有更清楚的认识,同时推荐目前最好的jsf开发工具:myeclipse 4.0 GA。后面的例子将会有jsf和hibernate的内容,它都能给予很好的支持。由于myeclipse并不免费,所以我们除了讲解在ide如何操作外,还会叙述手动操作的具体内容,以免过于依赖开发工具。用什么服务器都可以,这里采用了jboss 4.0.2。如果你的服务器是高版本的tomcat(5.5+),那么必须要删除它自带的一些包才能很好的支持jsf,具体细节请查看它的文档。 请自行下载jsf ri和JSTL 1.1。 废话少说,开始了。 在myeclipse 4.0GA新建一个web项目,命名为hello,为项目增加对JSTL的支持: 在JSTL的版本选择1.1。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别来BUG求求了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值