java jsf,jsf框架菜鸟教程

java jsf,jsf框架菜鸟教程,Java之JSF框架案例详解

本文主要介绍Java的JSF框架案例的详细说明。本文通过一个简单的案例来说明对这项技术的理解和使用。以下是详细内容,有需要的朋友可以参考一下。

这是一个由两部分组成的系列,其中我介绍了JSF 2以及它如何融入Java EE生态系统。

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

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

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

我将通过查看替代模板框架(如Primefaces)来解释AJAX如何在本地得到支持以及生态系统的可插入性质。

应用结构

EE申请一般是分层应用程序。嗯,我在这篇文章里说的层就是表示层。表示层对访问者访问你的网站时看到的内容负责。

这是用户与你的网站互动的方式,应该是尽可能地方便用户使用。好在借助Java EE API比如classJSF之很难做到这一点。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引擎负责定位和呈现视图。

这是一个代码片段,从中您可以看到管理仪表板模板已被传递给Cancel按钮的action属性。这是单击按钮时将显示的模板。

p:command button value=' Cancel ' action='/admin/dashboard '/

型号:装订

CDI bean处理模型个部分,将它们绑定到视图的方式是通过表达式语言。而数据和事件的绑定就是这样完成的,后面我们会看到很多例子。

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

欢迎p#{account.name}/p

AJAX和HTML 5

通过使用内置的JavaScript资源库,可以直接使用AJAX。F: Ajax标签可以给任何UI组件添加AJAX功能,不需要任何编码。

这个代码片段显示了提交按钮上的鼠标点击事件触发了AJAX。

h:command button id=' Submit ' value=' Submit '

f:ajax event='click' /

/h:命令按钮

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

关于Java的JSF框架案例的详细解释,本文到此结束。有关Java JSF框架的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: