当前位置: 首页 > 知识库问答 >
问题:

java居然还有个JSF技术,是干什么的啊?

哈烨熠
2024-08-15

比如说
http://joinfaces.org/
看了半天上手貌似不是很容易啊

共有2个答案

任昊阳
2024-08-15

一句话概括就是对标 .NET 里的 Web Forms 的

上古时代的 ASP/JSP 都有一个毛病,就是 HTML/JS/CSS 这些前端代码,跟后端代码都写在一起,稍微上点儿规模就会非常混乱。现在大家耳熟能详的 MVC 模式在当时的 Web 开发领域还并不是最佳实践。什么前后端分离?AJAX 技术都还没出来呢,更是想都别想。

2002 年 ASP.NET 刚公布,Web Forms 是其中的重磅功能,社区一看,“卧槽鹅妹子嘤~”,原来 Web 还能这么写。然后 2004 年 Sun 公布了 JavaServer Faces(那时候 Sun 还没被甲骨文收购呢)。

Java 和 .NET 两大“冤家”阵营里有非常多的技术体系是彼此互为对标的,当年就是为了争夺市场,你出啥我就跟着出啥,挣钱嘛,不寒掺。

但现在这玩意儿都属于该被扫进垃圾堆里的上古技术了,无论是微软还是甲骨文都已经停止维护了。

钱经赋
2024-08-15

JavaServer Faces (JSF) 是一种用于构建用户界面的Java Web应用程序框架。它旨在简化Web UI的开发,通过提供一个丰富的组件库和事件处理模型,使得开发者能够以声明方式创建用户界面,而不是传统的通过编写大量的HTML和JavaScript代码。JSF的目标是将UI的表示逻辑(如页面导航、数据验证等)与业务逻辑分离,从而提高应用程序的可维护性和可扩展性。

JSF的主要特点包括:

  • 组件化:JSF提供了一套丰富的UI组件,开发者可以通过这些组件快速构建Web页面。
  • 事件驱动:类似于桌面应用程序,JSF支持事件处理模型,使得页面间的交互更加灵活。
  • 配置导向:通过配置文件(如faces-config.xml)来管理页面导航、组件映射等,减少硬编码。
  • 模型-视图-控制器(MVC)模式:JSF遵循MVC设计模式,有助于实现清晰的代码分离,提升代码质量。

关于上手难度:

确实,对于初学者来说,JSF的上手可能会比一些更简单的框架(如Spring Boot结合Thymeleaf或JSP)稍显复杂。这主要是因为JSF涉及了更多的概念和配置文件,以及相对复杂的生命周期管理。但是,一旦掌握了JSF的基本概念和流程,你将能够利用其强大的组件库和事件处理机制来构建复杂的Web应用程序。

学习资源:

  • 官方文档:Oracle的JSF官方文档是学习的最佳起点,它详细介绍了JSF的各个方面。
  • 在线教程和课程:网上有很多JSF的教程和课程,如Udemy、Coursera等平台上的相关课程。
  • 社区和论坛:参与JSF的社区讨论和论坛,如Stack Overflow,可以解答你在学习过程中遇到的问题。

示例项目:

你提到的http://joinfaces.org/是一个结合了JSF和其他流行Java框架(如Spring Boot)的项目,旨在简化全栈Java Web应用的开发。虽然上手可能有些挑战,但它为开发者提供了一个强大的起点,可以快速构建现代化的Web应用程序。通过查看其文档和示例项目,你可以更好地理解如何在实践中应用JSF技术。

 类似资料:
  • 数据埋点与采集是进行数据分析的基础。在第三方统计平台普遍提供的前端埋点解决方案中,手动埋点是最基本且成熟的方式,但却因其技术门槛高、操作复杂、周期长等弊端为广大营销及技术人员所诟病。而解决这些问题正是后来兴起的『无埋点』技术的优势所在。 『无埋点』技术早在2013年就被Heap Analytics等公司应用在了数据分析领域,国内直到2016年才开始广泛关注,并同时出现了『全埋点』等技术描述。 事实

  • 主要内容:JSF的优点,使用JSF的前提条件JSF(JavaServer Faces)它是一个基于服务器端组件的用户界面框架。 它用于开发Web应用程序。 它提供了一个定义良好的编程模型,由丰富的API和标签库组成。最新版本使用作为其默认模板系统。 它是用Java编写的。 JSF API提供组件(,等)并帮助管理其状态。 它还提供服务器端验证,数据转换,定义页面导航,提供可扩展性,国际化支持,可访问性等。 JSF标签库用于在Web页面上添加

  • 1. 介绍gfs项目时,首先总体:在线的分布式文件系统。再具体聊接口函数 2. channel如何实现(从channel的底层实现上来说):并发安全 3. http的三次握手,为什么两次不行呢 4. rpc和grpc的区别 5. defer的先后顺序 6. redis的数据类型。 7. mysql的事务隔离级别,事务的四个特性 面试体验感很低,反正就是找马上能上手的,不好评论

  • 主要内容:Facelets应用程序的生命周期Facelets是一种轻量级的页面声明语言,用于使用HTML样式构建JSF(JavaServer Faces)视图。 它包括以下功能: 它使用XHTML创建网页。 除了支持JavaServer Faces和JSTL标记库之外,它还支持Facelets标签库。 它支持表达语言(EL)。 它是使用组件和页面的模板。 优点 它通过模板和复合组件支持代码可重用性。 它通过定制提供组件和其他服务器端对象的功

  • 本文向大家介绍smarty模板技术的用途是什么?相关面试题,主要包含被问及smarty模板技术的用途是什么?时的应答技巧和注意事项,需要的朋友参考一下 为了php与html分开,美工和程序员各司其职,互不干扰。

  • We had assumed that Bezos was just reinvesting the profits, that's why they weren't showing up on the bottom line. 我们曾经假设贝索斯只是在重新投资他的利润。这也是为什么他们今年没有排名倒数的原因。 Last year, about this time, the first big d

  • 问题内容: 除了使AJAX内容可抓取到Google之外,shebangs / hashbangs还有其他用途吗?还是那? 问题答案: 在URL中使用哈希时,早在发明Ajax之前就已经存在。 它最初旨在作为对页面中小节的引用。在这种情况下,例如,您将在页面顶部具有一个目录,每个目录都是到同一页面一部分的哈希链接。当您单击这些链接时,页面向下(或向上)滚动到相关标记。 当浏览器接收到带有哈希值的URL

  • 这个API是干啥用的阿?看不懂