javaserver

这是一个分为两部分的系列,其中我介绍了JSF 2及其如何适合Java EE生态系统。

在第1部分中,我将介绍JavaServer Pages(JSF)背后的基本思想 ,在第2部分中,我将介绍Facelets声明语言

在构建Web应用程序时,我们为最终用户提供了一种与我们的应用程序进行交互的方式,这就是JSF所提供的。

我将向您介绍MVC设计模式以及如何使用它,并且您将发现Facelets视图语言以及如何使用它,如何将数据和事件绑定到上下文以及如何通过表达语言来实现。

我将通过查看替代模板框架(例如Primefaces)来说明AJAX本身是如何受支持的以及生态系统的可插入性。

应用结构

Java EE应用程序通常是分层应用程序 。 好吧,我在本文中谈论的层是表示层。 表示层负责访问者在访问您的网站时所看到的内容。

这是用户与您的网站进行交互的方式,并且应尽可能做到用户友好 。 幸运的是,借助诸如JSF之类的Java EE API很难做到这一点。 在JSF API包括很多便利,使开发人员能够提供高品质的用户体验的开箱和用很少的设计知识。

MVC设计模式

让我们先来看一下Model View Controller设计模式,该模式也称为MVC。

MVC是用于实现用户界面的体系结构模式,该用户界面将Web应用程序分为三个逻辑连接的部分。 这样做是为了将数据的内部表示形式与数据的表示方式分开。

JSF实际上是古典意义上的MVC框架 ,其中使用Facelets声明语言构建视图,并且模型由CDI托管bean表示,而控制器由JSF引擎本身负责。

在以后的文章中,我将对CDI托管bean及其扮演的角色有更深入的了解。

查看:Facelets

Facelets是用于构建JSF视图和可重用复合组件的视图声明语言。 通常,通过组合复合组件,表达式语言和标记库,将视图构建为XHTML页面。

我们不会在标签库或复合组件的构造方面进行详细介绍。 这些超出了本课程的范围。 尽管如此,我们将研究如何使用表达式语言来绑定CDI bean和如何用来自应用程序内部层的数据替换视图中的值。

复合组件

复合组件是按给定方式运行的可重用代码段,例如接受用户输入的输入字段。 他们可以附加验证器,侦听器和其他元素,以提供更多有用的交互功能。

但是,Facelets不是我们工具包中仅有的模板语言。 实际上,围绕第三方组件库的社区非常繁忙。

可插拔库

可插拔的库(例如PrimeFaces , Apache MyFaces和ICEFaces )都提供了复合组件,这些组件为视图增加了实质性功能,从而增强了用户体验。 实际上,我们将在应用程序中使用PrimeFaces的组件,并且稍后将在本课程中看到其示例。

导航

Facelets使导航变得简单。 您可以仅将视图名称传递给组件的操作,而JSF引擎负责定位和呈现视图。

这是一个代码段,您可以在其中看到管理仪表板模板已传递到“取消”按钮的action属性。 这是单击按钮时将呈现的模板。

<p:commandButton value="Cancel" action="/admin/dashboard" />

型号:装订

CDI bean处理了模型部分,并且将它们绑定到视图的方式是通过表达语言。 数据和事件的绑定都是通过这种方式完成的,稍后我们将看到很多示例。

在这里,您可以看到数据绑定的示例。 我们正在做的是将帐户CDI bean的名称字段绑定到页面的上下文。 呈现后,名称字段的值将在视图中替换,并在屏幕上显示给最终用户。

Welcome <p>#{account.name}</p>

AJAX和HTML 5

通过使用内置JavaScript资源库,可以直接使用AJAX。 f:ajax标记无需任何编码即可将AJAX功能添加到任何UI组件。

此代码段显示了AJAX是为“提交”按钮上的鼠标单击事件触发的。

<h:commandButton id="submit" value="Submit"> <f:ajax event="click" />
</h:commandButton>

现在,让我们继续使用Facelets声明语言本身。 语言语法基于标签的概念,其中每个标签代表某种功能,并通过一起使用这些标签来构造视图。

下一步是什么

在第2部分中,您将了解有关JSF API的更多信息,并发现Facelets声明语言。

翻译自: https://www.javacodegeeks.com/2017/09/javaserver-faces-jsf.html

javaserver

javaserver_什么是JavaServer Faces(JSF)相关推荐

  1. javaserver_什么是JavaServer Faces(JSF)–(第2部分)

    javaserver Facelets声明语言 在第1部分中,我介绍了JavaServer Pages(JSF)背后的基本思想 . 在本文中,我想介绍Facelets声明语言 . HTML标签 我们遇 ...

  2. 什么是JavaServer Faces(JSF)–(第2部分)

    Facelets声明语言 在第1部分中,我介绍了JavaServer Pages(JSF)背后的基本思想 . 在本文中,我想介绍Facelets声明语言 . HTML标签 我们遇到的第一个标签是代表H ...

  3. javaserver_集成Spring和JavaServer Faces:改进的模板

    javaserver 随着2.0版的发布,Facelet模板成为JSF规范的核心部分. 使用<ui:composition>和<ui:decorate>标记,可以轻松构建复杂的 ...

  4. 什么是jsf_什么是JSF? JavaServer Faces简介

    什么是jsf JavaServer Faces(JSF)是Java标准技术,用于构建基于组件的,面向事件的Web界面. 与JavaServer Pages(JSP)一样,JSF允许访问服务器端数据和逻 ...

  5. 集成Spring和JavaServer Faces:改进的模板

    随着2.0版的发布,Facelet模板成为JSF规范的核心部分. 使用<ui:composition>和<ui:decorate>标记,可以轻松构建复杂的页面,同时仍保持标记清 ...

  6. study of javaserver faces lifecycle

    JavaServer Faces应用程序的生命周期在客户端为页面发出HTTP请求时开始,并在服务器响应该页面并转换为HTML时结束. 通常将JSF的生命周期分为两个阶段: #执行阶段 #渲染阶段 1. ...

  7. Java Server Faces_JSF ( JavaServer Faces ) 介绍

    javaServer Pages(JSF) 在 Java 的 WEB 编程中已经被认为是下一个重大的事件.通过 JSF ,你可以在网页上使用 WEB 组件,来捕捉用户行为产生的事件.不远的将来,Jav ...

  8. Java Server Faces_用JavaServer Faces开发Web应用(4) (转)

    用JavaServer Faces开发Web应用(4) (转)[@more@] 6.事件处理. XML:namespace prefix = o ns = "urn:schemas-micr ...

  9. 解决JavaServer Faces 2.2 requires Dynamic Web Module 2.5 or newer问题

    解决JavaServer Faces 2.2 requires Dynamic Web Module 2.5 or newer问题 参考文章: (1)解决JavaServer Faces 2.2 re ...

最新文章

  1. iphone开发 ---- GPS
  2. 电话订票每日开始时间(几点放票) - 北京本地宝
  3. php loading效果,利用CSS3打造十种Loading效果
  4. 如何正确使用AD构造企业的组织架构
  5. Vue 页面如何利用生命周期函数监听用户预览时长
  6. HTML段落,换行,字符实体
  7. C++实现二叉树的相应操作
  8. 错误的艺术!20个创意的404错误页面设计
  9. 分享(Java中new一个对象的过程)
  10. Android逆向第二天
  11. android nio wifi 拥堵 超时,提高WiFi上网速度,改变道路拥挤的方法
  12. 商之翼小京东+ucenter1.6.0+discuz3.3整合经历
  13. BaiduMap---百度地图官方Demo之离线地图功能(介绍如何下载和使用离线地图)
  14. cadence allegro 17.2中的正负片
  15. 项目经理之项目经理的选拔
  16. java中怎么让字体可以显示下划线呢_java中怎么让字体可以显示下划线呢
  17. 通俗理解主属性,范式!
  18. JAVA 从原理到实现,制作license文件,可用于模块授权,程序授权等
  19. Reverse recognition
  20. 晃乱年华,谁的呢喃呓语?

热门文章

  1. [2020-11-28 contest]素数(数学),精灵(区间dp),农夫约的假期(结论),观察(树链剖分lca+set)
  2. AT2667-[AGC017D]Game on Tree【SG函数】
  3. P4492-[HAOI2018]苹果树【dp】
  4. jzoj5702-[gdoi2018day2]滑稽子图【树形dp,二项式定理】
  5. nssl1469-W【dp】
  6. ssl1747-登山机器人【离散化,玄学,贪心】
  7. P1197-星球大战【并查集,图论】
  8. Educational Codeforces Round 93 (Rated for Div. 2)
  9. 【Floyed】【匈牙利算法】导弹(jzoj 1610)
  10. codeforces 962E Byteland, Berland and Disputed Cities 最小生成树变形