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专题。刚刚微软在官方博客…

Linux 命令之 cat -- 在终端设备上显示文件内容(查看文件内容/浏览文件内容)

文章目录一、命令介绍二、命令选项三、参考示例&#xff08;一&#xff09;查看文件的内容&#xff0c;并显示行数编号&#xff08;二&#xff09;把 test4.txt 的内容加上行号后输出到 test3.txt 这个文档里&#xff08;三&#xff09;清空 test4.txt 的内容&#xff08;四&am…

少儿计算机兴趣小组活动记录,2013年度儿童画兴趣小组活动记录Word编辑

《2013年度儿童画兴趣小组活动记录Word编辑》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《2013年度儿童画兴趣小组活动记录Word编辑(16页珍藏版)》请在人人文库网上搜索。1、传播优秀Word版文档 &#xff0c;希望对您有帮助&#xff0c;可双击去除&#xff01;岑兜…

java变量_Java变量

java变量变数 变量是Java程序中基本的存储单元。 变量由标识符&#xff0c;类型和可选的初始化程序的组合定义。 此外&#xff0c;所有变量都有一个范围&#xff0c;该范围定义了它们的可见性和生存期。 接下来将检查这些元素。 声明变量 在Java中&#xff0c;必须先声明所有变…

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

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

c# char unsigned_c – unsigned char和char指针之间的区别

我对unsigned char(在WinAPI中也是BYTE)和char指针之间的差异感到困惑.目前我正在使用一些基于ATL的遗留代码,我看到很多表达式如下&#xff1a;CAtlArray rawContent;CALL_THE_FUNCTION_WHICH_FILLS_RAW_CONTENT(rawContent);return ArrayToUnicodeString(rawContent);// or r…

名词解释多媒体计算机,多媒体-名词解释及填空

上传的两个关于多媒体技术的文档是本人提取教材中的部分,用于考试复习所用。因为在网上甚少找到此类信息,仅供大家参考。◆多媒体&#xff1a;指信息表示媒体的多样化&#xff0c;常见的多媒体有文本、图形、图形、声音、音乐、视频、动画等多种形式。◆多媒体技术&#xff1a;…

jshell_五分钟的JShell

jshell这篇文章建立在我的My Java 9顶级功能文章的基础上&#xff0c;通过对这些功能的深入研究。 在这里&#xff0c;我们向您展示如何在五分钟内学习jshell并改善Java 9开发经验。 入门 假设您已经下载并安装了Java 9&#xff0c;则可以通过键入以下内容启动Shell&#xff1…

极速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.介绍设…

查看 Linux 系统版本(发行版本)信息的相关命令语句

文章目录一、查看 version 文件二、只查看内核版本号三、查看系统内核版本信息四、查看系统基础版本及发行版本信息五、仅查看发行版本信息一、查看 version 文件 [roothtlwk0001host ~]# cat /proc/version Linux version 4.18.0-193.6.3.el8_2.x86_64 (mockbuildkbuilder.bs…

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

原标题&#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;我的日常使…

LFS、BLFS、ALFS、HLFS的区别详解

Linux From Scratch (LFS) 及其后代代表一种新方法&#xff0c;向用户揭示 Linux 操作系统是如何工作的。LFS 基于这样的假设&#xff0c;即一部分一部分地编译完整的操作系统不仅能够揭示操作系统是如何工作的&#xff0c;也允许独立的操作人员为速度、内存占用或安全性而构建…

jax-rs jax-ws_什么是JAX-RS注释?

jax-rs jax-wsJAX-RS概述&#xff08;第1部分&#xff09; JAX-RS API构成了Java EE平台承诺提供标准驱动技术的重要组成部分。 互联网无处不在的性质以及对微服务体系结构的日益增长的兴趣已将更多的精力放在小型可扩展的自治服务及其互操作性上。 允许微服务彼此之间以及“外…

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

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

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

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