javaserver_什么是JavaServer Faces(JSF)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334638.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装计算机一级出现appcrash,win10系统运行程序出现appcrash错误的办法

win10系统使用久了&#xff0c;好多网友反馈说win10系统运行程序出现appcrash错误的问题&#xff0c;非常不方便。有什么办法可以永久解决win10系统运行程序出现appcrash错误的问题&#xff0c;面对win10系统运行程序出现appcrash错误的图文步骤非常简单&#xff0c;只需要1、同…

winpe镜像文件iso下载_下载:微软正式发布Win10 2004版并即日起开始推送

PS&#xff1a;关于Windows 10 v2004版蓝点网早前已建立专题&#xff0c;目前该专题已收录关于该版本的101篇文章&#xff0c;微信篇幅有限无法全部发过来&#xff0c;准备升级的用户建议点击阅读原文按钮或使用电脑访问蓝点网首页查看Windows 10 v2004专题。刚刚微软在官方博客…

iphone固件降级_我在iPhone上装了个安卓

目前使用Android系统设备的好处就是可以执行更多的操作。主要是因为安卓拥有自己的开源计划AOSP(Android Open Source Project)&#xff0c;比iOS开放了更多的应用接口API&#xff0c;商家可以用Android源码进行二次开发&#xff0c;相对iOS开放很多。图片来自百度iPhone跟Andr…

极速pdf编辑器的水印如何去掉_如何修改PDF?有没有详细的PDF编辑器操作方法?...

在工作中我们每天都会处理很多文件&#xff0c;而PDF格式因为其格式稳定也被越来越多的人接受并使用&#xff0c;但也正因为如此&#xff0c;PDF的修改相比较以前常用的Word会复杂很多。那么应该如何修改PDF呢&#xff1f;其实使用PDF编辑器就能让PDF文档像Word一样轻松编辑。1…

python django开发网站项目难吗_用django开发网站时遇到的问题

1.网站的登录功能怎么实现&#xff1a;密码的存储机制、重置密码时链接的生成算法&#xff0c;第三方认证的原理等等。django的密码储存是 Hashsalt 并迭代 第三方认证是用oauth2django-admin里面有写了哦 循环1000次加密算法google关键词 hash salt&#xff0c;oauth22.介绍设…

计算机网络专科升本科,目前专科升本科有哪几种途径?

原标题&#xff1a;目前专科升本科有哪几种途径&#xff1f;随着社会的高速发展&#xff0c;只有专科学历是远远不够自身发展需求的。于是有不少同学就想专科升本科学历来提高自己的职业竞争力&#xff0c;但他们对于目前专科升本科的几种途径还不够了解。那么&#xff0c;目前…

java私有属性和私有方法_Java 9中什么是私有的?

java私有属性和私有方法在进行面试时&#xff0c;我发现大多数应聘者都不知道Java中的private修饰符真正意味着什么。 他们对此有所了解&#xff0c;足以应付日常编码&#xff0c;但还远远不够。 这不成问题。 足够了解就足够了。 但是&#xff0c;了解Java的一些内部工作仍然很…

stata F值缺失_stata面板数据回归操作之GMM

新手面板数据回归之GMM 的 stata 操作步骤广义矩估计&#xff08; Generalized Method of Moments 即 GMM &#xff09; 原理就是回归&#xff01;就是一种高级点的回归&#xff01;我也是新手&#xff0c;也有很多不太懂的地方。断断续续学习了两个月&#xff0c;看了很多文献…

后缀为frm是什么文件_Shell 点文件可以为你做点什么

了解如何使用配置文件来改善你的工作环境。-- H.waldo Grunenwald(作者)不要问你可以为你的 shell 点文件(dotfile)做什么&#xff0c;而是要问一个 shell 点文件可以为你做什么&#xff01;我一直在操作系统领域里面打转&#xff0c;但是在过去的几年中&#xff0c;我的日常使…

计算机usb端口没反应,技术编辑教您电脑usb接口没反应怎么办

近来&#xff0c;有好多小伙伴反应有电脑USB接口不能使用的情况&#xff0c;鼠标键盘通通没反应。针对电脑usb接口没反应的问题&#xff0c;小编整理了常见的原因以及解决方法&#xff0c;希望能帮助你们解决问题USB是一个外部总线标准&#xff0c;用于规范电脑与外部设备的连接…

计算机二级access模考软件_计算机二级考前通关大礼包来啦!各科目模考软件、视频教程,更有往年真题、最新考纲等打包送!...

掐指一算&#xff0c;全国计算机二级就要开考了不知道大家准备的怎么样了&#xff1f;没准备&#xff1f;这个时候就该我出场了看看为大家精心准备的计算机二级考试的干货资源吧让你的考试一次pass&#xff01;本期资料包括计算机二级考试最新大纲计算机二级模考软件计算机二级…

foxpro 打印 字体_【部编版同步复习】16年级上册期中预测卷,可打印!

小语说&#xff1a;开学以后&#xff0c;不仅要认真学习&#xff0c;还要注意复习之前的知识点。小语给你们准备了小学语文部编版1-6年级每课一练&#xff0c;快来学习收藏。(点击下方蓝色字体查看完整版&#xff0c;可打印下载哦&#xff01;)点击蓝字标题 可查看相关内容电子…

raii_Java中的RAII

raii资源获取即初始化&#xff08; RAII &#xff09;是Bjarne Stroustrup用C 引入的一种设计思想&#xff0c;用于异常安全的资源管理。 由于垃圾回收&#xff0c;Java 没有此功能&#xff0c;但是我们可以使用try-with-resources实现类似的功能。 约翰哈德斯&#xff08;Joh…

计算机应用基础本模块一测试,广东开放大学远程教育专科2018年秋计算机应用基础Word模块测试...

广东开放大学远程教育专科2018年秋计算机应用基础Word模块测试 (12页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;9.90 积分广东开放大学远程教育专科2018年秋计算机应用基础Word模块测试1. 撤销输…

蓝牙驱动卸载后自动安装_最热建筑安装工程计算表格,输入后自动生成,省时方便易上手...

最热建筑安装工程计算表格&#xff0c;输入后自动生成&#xff0c;省时方便易上手&#xff01;工程量计算是每一个造价从业者必备技能。但是要保证计算过程中不能有一丝丝差错&#xff0c;实在是一件令人头疼的事情&#xff0c;因为步骤比较繁杂&#xff0c;并且算量大&#xf…

51单片机做web服务器网页,基于51单片机的嵌入式web服务器

单片机 系统设计 编程维普资讯 http://doc.xuehai.net基于 5单片机的嵌入式 w b服务器 1 e基于 5单片机的嵌入式 we服务器 1 b刘东 (南交通大学电气工程学院 )西摘要本文设计实现了一个基于 5单片机的嵌入式 WE l B服务T P I议实现的嵌入式 WE C/P协 B服务器可以使各种家电设备…

stm32f4 hs 电路_电动机控制电路识图一看就懂

点击上方电工电气学习&#xff0c;关注并星标专业的电工电气领域自媒体&#xff0c;不容错过欢迎转发朋友圈&#xff0c;欢迎文末留言本书采用原理图与实物接线图一一对照的形式&#xff0c;讲述了常用机械设备、液位控制的水泵、小型机械设备、供排循环水泵等的电动机控制电路…

isnull mysql_mysql isnull用法讲解

mysql isnull用法讲解 MySQL 可以使用 ISNULL() 函数。不过它的工作方式与微软的 ISNULL() 函数有点不同。 我们先来看几个is null sql用法: select * from newtable where name is null //取得newtable表中name为null值的所有数据 select * from tbas_tablemysql isnull用法讲…

迈克尔 杰克逊mv_杰克逊JSON解析错误– UnrecognizedPropertyException:无法识别的字段,未标记为可忽略[已解决]...

迈克尔 杰克逊mv在解析从我们的一个RESTful Web服务接收到的JSON字符串时&#xff0c;我收到此错误“线程“ main”中的异常com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException&#xff1a;无法识别的字段“ person”&#xff08;类Hello $ Person&#xff09;…

手机版wps怎么制作折线图_手机怎么制作电子签名?有没有手机电子签名软件或者APP?...

手机怎么制作电子签名&#xff1f;有没有手机电子签名软件或者APP&#xff1f;手机制作电子签名非常简单&#xff0c;当然也有移动版的电子签名软件或者APP。根据《电子签名法》第13条规定&#xff1a;电子签名同时符合下列条件的&#xff0c;视为可靠的电子签名&#xff1a;(一…