iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java之JSF框架案例详解
  • 649
分享到

Java之JSF框架案例详解

2024-04-02 19:04:59 649人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这是一个分为两部分的系列,其中我介绍了JSF 2及其如何适合Java EE生态系统。 在第1部分中,我将介绍JavaServer Pages(JSF)背后的基本思想 ,在第2部分中,

这是一个分为两部分的系列,其中我介绍了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声明语言本身。 语言语法基于标签的概念,其中每个标签代表某种功能,并通过一起使用这些标签来构造视图。

到此这篇关于Java之JSF框架案例详解的文章就介绍到这了,更多相关Java之JSF框架内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java之JSF框架案例详解

本文链接: https://www.lsjlt.com/news/134749.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java之JSF框架案例详解
    这是一个分为两部分的系列,其中我介绍了JSF 2及其如何适合Java EE生态系统。 在第1部分中,我将介绍JavaServer Pages(JSF)背后的基本思想 ,在第2部分中,...
    99+
    2024-04-02
  • MFC框架之OnIdle案例详解
    先看下MSDN对OnIdle()介绍: CWinApp::OnIdle OnIdle is called in the default message loop when ...
    99+
    2024-04-02
  • Java Structs框架原理案例详解
    1 Struts2框架内部执行过程 Structs请求过程源码分析参考链接https://www.jb51.net/article/220585.htm 从上图来看,整个框架的运...
    99+
    2024-04-02
  • Java之Algorithm_analysis案例详解
    public class BubbleSort { public void sort(int[] array){ for(int i=1;i<...
    99+
    2024-04-02
  • Java之HashMap案例详解
    概述 这篇文章,我们打算探索一下Java集合(Collections)框架中Map接口中HashMap的实现。Map虽然是Collctions框架的一部分,但是Map并没有实现Col...
    99+
    2024-04-02
  • react.js框架Redux基础案例详解
    react.js框架Redux https://github.com/reactjs/redux 安装: npm install redux react-redux #基于rea...
    99+
    2024-04-02
  • Java集合框架之Map详解
    目录1、Map的实现2、HashMap 和 Hashtable 的区别3、介绍下对象的 hashCode()和equals(),使用场景4、HashMap和TreeMap应该怎么选择...
    99+
    2024-04-02
  • Java Executor 框架的实例详解
    Java Executor 框架的实例详解大多数并发都是通过任务执行的方式来实现的。一般有两种方式执行任务:串行和并行。class SingleThreadWebServer { public static void main(String...
    99+
    2023-05-31
    java executor ava
  • Java Thread之Sleep()案例详解
    一、API简介 Thread.sleep()是Thread类的一个静态方法,使当前线程休眠,进入阻塞状态(暂停执行),如果线程在睡眠状态被中断,将会抛出IterruptedExcep...
    99+
    2024-04-02
  • Java之OutputStreamWriter流案例详解
    一、OutputStreamWriter流     API说明:OutputStreamWriter是从字符流到字节流的桥接:使用指定的字符集将写入其中...
    99+
    2024-04-02
  • Java基础之集合框架详解
    目录一、前言二、集合的由来?三、集合和数组的区别?四、Collection集合的功能概述?五、Collection集合存储字符串并遍历?(迭代器)六、...
    99+
    2024-04-02
  • Java框架设计灵魂之反射的示例详解
    目录获取Class对象的方式Class对象功能获取成员变量们获取构造方法们获取成员方法们获取全类名  Field:成员变量Constructor:构造方法Method:方法...
    99+
    2024-04-02
  • Java并发之Condition案例详解
    目录一、Condition接口介绍和示例二、Condition接口常用方法三、Condition接口原理简单解析3.1、等待3.2、通知四、总结五、利用Condition实现生产者消...
    99+
    2024-04-02
  • Java之Buffer属性案例详解
    一、前言 熟悉NIO的人想必一定不会陌生buffer中position,limit,capacity这三个属性吧,之前在学习的时候遇到一个问题:就是当你先往缓冲区写入一部分数据,然后...
    99+
    2024-04-02
  • Java Spring AOP之PointCut案例详解
    目录一、PointCut接口二、ClassFilter接口三、MethodMatcher接口总结一、PointCut接口 package org.springframewor...
    99+
    2024-04-02
  • Java注解之Elasticsearch的案例详解
    学会了技术就要使用,否则很容易忘记,因为自然界压根就不存在什么代码、变量之类的玩意,这都是一些和生活常识格格不入的东西。只能多用多练,形成肌肉记忆才行。 在一次实际的产品开发中,由于...
    99+
    2022-11-13
    Java注解 Elasticsearch Java Elasticsearch
  • Java之Jackson使用案例详解
    序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取...
    99+
    2024-04-02
  • Java之Class.forName()用法案例详解
    Class.forName()主要功能 Class.forName(xxx.xx.xx)返回的是一个类, Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载...
    99+
    2024-04-02
  • MyBatis框架简介及入门案例详解
    目录前言MyBatis简介快速入门映射文件sql片段与resultMapMyBatis的增删改查1.添加操作2.修改操作3.删除操作前言 传统的JDBC操作数据库都是通过写一个jav...
    99+
    2022-11-13
    MyBatis 简介 MyBatis 案例
  • Java集合框架之Set和Map详解
    目录Set接口HashSetTreeSetMap接口HashMapTreeMapSet接口 set接口等同于Collection接口,不过其方法的行为有更严谨的定义。set的add...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作