JSF的功能特性

2019-04-28 07:30|来源: 网路

最新版本的JSF 2.2提供了以下功能特点:

  • 基于组件的框架

  • 实现Facelets技术

  • 与表达语言的集成

  • 支持HTML5

  • 轻松快捷的网页开发。

  • 支持国际化

  • Bean注释

  • 默认异常处理

  • 模板

  • 内置AJAX支持

  • 安全

基于组件的框架

JSF是一个基于服务器端组件的框架,它提供内置组件来构建Web应用程序。您可以使用HTML5,Facelets标签来创建网页。

Facelets技术

Facelets是一个开源Web模板系统。它是JavaServer Faces(JSF)的默认视图处理程序技术。 该语言需要有效的输入XML文档才能正常工作。 Facelets支持所有的JSF UI组件,并且完全侧重于构建JSF应用程序的视图。

表达语言

表达式语言提供了创建用户界面(网页)与应用程序逻辑(被管理的bean)通信的重要机制。 EL表示由JavaServer Faces技术提供的表达式语言的并集。

HTML5

HTML5是编写网页的新标准。 JavaServer Faces版本2.2提供了一种简单的方法,将新的HTML 5属性包含在JSF组件中,并提供了HTML5友好的标记。

轻松快捷的网页开发。

JSF提供丰富的内置工具和库,以便您可以轻松快速地开发应用程序。

支持国际化

JSF支持国际化创建世界一流Web应用程序,您可以使用不同的语言创建应用程序。 在JSF的帮助下,您可以使应用程序适应各种语言和区域。

Bean注释

JSF提供注释工具,您可以在其中执行被管理的Bean中的验证相关任务。这是很好的,因为你可以验证数据,而不是HTML验证。

异常处理

JSF提供默认的异常处理,以便您可以开发异常和无bug的Web应用程序。

模板

在新版本的JSF中引入模板提供了组件的可重用性。在JSF应用程序中,您可以创建新模板,重用模板并将其视为应用程序的组件。

AJAX支持

JSF提供内置的AJAX支持。 因此,您可以将应用程序请求提交到服务器端,而无需刷新网页。 JSF还支持使用AJAX进行部分渲染。

安全

当状态保存在服务器上并且不使用无状态视图时,JSF提供了隐含的保护,因为Post-back必须包含一个有效的javax.faces.ViewState隐藏参数。 与早期版本相反,在现代JSF实现中,这个值似乎是非常随机的。请注意,客户端上的无状态视图和保存状态没有这种隐含的保护。

相关问答

更多
  • 1、执行如下命令连接本地mysql服务器。 mysql -u 用户名 -p 密码 2、执行如下命令即可获取数据库物理文件的存放位置。 show variables like ‘datadir''; 说明:图中显示的数据库物理存储位置在/var/lib/mysql。
  • 拨号盘联系人自动补全 现在Android 4.3系统原生支持智能拨号,在拨号盘中输入号码和人名时会自动搜索联系人。 受限制的配置文件 Android4.3系统中最显著的功能是可以创建受限制的配置文件。这项功能是以Android4.2的多用户功能为基础,让用户可以指定哪些应用、服务和设定对被限制的用户是可用的。例如可以限制儿童账户的应用内购买权限,拒绝儿童账户访问某一应用等等;开发者也可以根据不同类型的账户让应用展现不一样的功能。 蓝牙 Android4.3带来的一个新功能是BluetoothSmart,即蓝 ...
  • 磷化液分析 中温磷化剂膜结晶细致色泽均匀黑色,减少仪器内表漫反射,该磷化结晶膜具有优良的防锈性能,主要用于精密钢铸件的防护与装饰及活塞环磷化 一、 产品特点 1、磷化膜层结晶致密、均匀、无挂灰、无残液加速腐蚀。 2、产品使用周期长,工作液易调整,只许添加即可,残渣少。 3、防锈期可达1年以上。 4、成倍提高涂层附着力及耐腐蚀能力 二、 磷化液技术指标 分析项目 质量指标 磷化液外观 绿色液体 磷化液密度 1.35-1.4 工作液浓度 1:10-30 总酸度 20-40 游离酸度 1.0-3.0 磷化温度 8 ...
  • Android M有什么功能 安卓新系统全解析 在本届I/O大会的主题演讲上,谷歌正式向我们介绍了新一代Android M操作系统和当中的部分新功能,比如新的应用权限管理、续航提升、Android Pay支持、指纹传感器支持、以及新的Google Now等等。但是,Android M还有大量有趣的新功能,这些谷歌都没有来得及一一进行介绍。以下就是谷歌并未在I/O大会上提及的10个Android M隐藏功能。 1.在锁屏界面从左向右滑动不会再唤出拨号盘,而是会开启Google Now。 2.Google No ...
  • 通常有3种常见方法: 使用固定的程序版本(每个版本只是增加了功能,你不能自定义你想要的功能)。 您也可以使用“颠覆”,如Software x.0的基本版和专业版。 Windows使用这种方法。 具有功能模块,这些模块本身就是一种产品。 Matlab使用这种方法。 有一个基本功能的软件,然后有插件,或额外的应用程序出售。 Eclipse使用这种方法(虽然它是免费的) 您可以混合使用这些方法以获得更好的可定制性。 There are usually 3 common approaches to this: us ...
  • 我相信默认情况下会禁用ClientWindow功能。 以下JavaDoc详细说明了该行为: http://docs.oracle.com/javaee/7/api/javax/faces/lifecycle/ClientWindow.html#CLIENT_WINDOW_MODE_PARAM_NAME 此外,我不确定为什么在ap:commandButton(h:commandButton)上会出现disableClientWindow,因为这是一个POST请求,而p:按钮(h:按钮)将是一个GET请求。 查 ...
  • 您已经了解了Bind()这很重要,因为您应该在旧示例或教程中替换Connect()任何外观 - 并且还要认真考虑用它替换静态事件表。 从这个角度来看,另一件重要的事情是Unicode更改:许多3.0之前的帖子和示例使用wxT() (或_T() ,这完全相同),但wxWidgets 3.0根本不需要它。 您还应该忽略对Unicode与ANSI构建的任何讨论,因为只有一个wxWidgets 3.0构建,与先前版本的Unicode和ANSI构建兼容。 在3.0中并不是新的东西但似乎并不广为人知的是wxSizerF ...
  • 您可以使用num或num-traits包,并使用num::Float , num::Integer或任何相关特征绑定您的泛型函数类型: extern crate num; use num::Float; fn main() { let f1: f32 = 2.0; let f2: f64 = 3.0; let i1: i32 = 3; println!("{:?}", sqrt(f1)); println!("{:?}", sqrt(f2)); prin ...