您将在下一个项目中使用JSF吗?

上周有一篇很棒的stackoverflow博客文章,主题是“ JavaScript框架的残酷生命周期” 。 这篇文章是关于Javascript UI框架(angularjs,angular,jquery和react)的流行和流行的速度。 这篇文章的关键指标是每月关于框架的问题,这是证明这些趋势的合理指标。 下载本来也很有趣。

这让我开始思考JSF在哪里,我的出发点是将JSF叠加在Javascript数据之上–

很难清楚看到,但是基于Stackoverflow提出的问题,JSF处于下降状态。 如果我们删除Javascript,我们可以看到下降趋势始于2013年

也就是说问题的水平很小,水平也相对稳定

这篇文章试图了解JSF的现状,以及JSF在现代开发中是否还有地方。

什么是JSF?

JSF是基于组件的Web框架,是Java EE的一部分。 在Java EE 8添加其新的MVC框架之前,它是Java EE下唯一的前端框架。

JSF有什么好处?

对我而言,JSF的主要优势在于JSF生态系统中的组件框架。 特别是PrimeFaces或诸如omn​​ifaces之类的实用程序库。 它们使您可以快速开始项目,拥有大量示例,特别适合团队或开发人员缺乏前端技能的项目。 部署模型通常很简单,每台服务器只有一个war或ear文件

JSF的当前版本是2.3,目前正在进行2.4规范。

JSF有什么不好的地方?

2014年,JSF受到了Thoughtworks技术雷达的批评,该批评被搁置了。

批评的主要部分是JSF模型存在缺陷,因为它–

“鼓励使用自己的抽象,而不是完全拥抱底层的网络模型”

他们确实做出让步,认为Web模型在JSF的更高版本中变得越来越重要。

对此文章有一些反驳,特别是与最新JSF版本有关。 但这使JSF被认为是难以使用的框架。

JSF是Marmite

JSF是前端开发的代名词。

什么是软糖 ? 它是一种酵母提取物,可在烤面包上摊开。 有些人喜欢它,有些人讨厌它,但是没有中间立场。 出于记录,我讨厌marmite,但我喜欢JSF。

我喜欢JSF的原因是,您可以访问成熟且有据可查的高质量组件。 它还具有允许前端技能较弱的团队开发具有专业外观的网站的优势。 不利的一面是,由于JSF下的Request / Response模型更加抽象,因此很难交付更复杂的需求。

您应该将JSF用于新项目吗?

JSF模型已不受欢迎。 它被视为具有RESTful API后端的当今Javascript框架的遗留框架。 这已将Java转移到实现RESTful微服务。 这种方法通常可以比JSF更好地扩展。

stackoverflow博客文章显示了它在前端Javascript世界中并非一帆风顺。 这些框架的寿命相对较短,尽管有迁移策略,但您确实会冒着JavaScript框架过时的风险。

在这方面,JSF具有成为成熟模型的优势。 还值得记住的是,如果您的团队缺乏前端技能,那么JSF将帮助您快速提供外观专业的网站。

我很想听听其他人的经验,以及他们是否会在未来的项目中使用JSF

翻译自: https://www.javacodegeeks.com/2018/01/use-jsf-next-project.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348044.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java dao层 service层_dao层与service层的区别

service是业务层,dao是数据访问层。这个问题我也曾经考虑过学java的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有什么用然后百度了一下我们都…

java heapsort_排序算法笔记:堆排序 HeapSort in java

/*** 堆排序* 简述:* 首先使用建立最大堆的算法建立好最大堆,然后将堆顶元素(最大值)与最后一个值交换,同时使得堆的长度减小1 ,调用保持最大堆性质的算法调整,使得堆顶元素成为最大值,此时最后一个元素已被排除在外* …

从Java 10中删除的API

在博客文章“ JDK 10 Release Candidate Phase ”中,我研究了JDK 10可能包含的十二个新功能。 在本文中,我介绍了一些可能会在JDK 10中删除的API,并探讨了一些在JDK 10中建议弃用的API。本文中的信息基于当前版本(2018/1 / “ Jav…

使用java自带的日志管理_java日志管理

1.相关概念日志统一框架(日志门面):apache commons logging、slf4j日志实现框架(实现层):JDK自带的logging(java.util.logging)、log4j、Java Util Logging、log4j2、logback.(1)JDK自带的logging(java.util.logging)用法:1 importjava.util.…

在会话中使用JWT

在黑客新闻,reddit和博客上,该主题已经讨论了很多次。 共识是–请勿使用JWT(用于用户会话)。 而且我在很大程度上同意对JWT的典型论点 , 典型的“但我可以使其工作……”的解释以及JWT标准的缺陷的批评 。 。 我不会…

java案例源代码_求java案例源代码 越多越好!

展开全部import java.awt.*;import java.awt.event.*;import java.lang.*;import javax.swing.*;public class Counter extends Frame{//声明三个面板的布局GridLayout gl1,gl2,gl3;Panel p0,p1,p2,p3;JTextField tf1;TextField tf2;Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,…

安卓4.4玩java_Android4.4运行过程中闪退java.lang.NoClassDefFoundError

上周五项目测试时发现一个奇怪的Bug,项目中依赖了一个第三方框架,但是在android4.0-4.4.4之间的系统中运行会直接闪退,抛出错误异常为java.lang.NoClassDefFoundError。第一次遇到这样的问题,google了好久找到了以下几个原因&…

java method方法_Java Method.getTypeParameters方法代碼示例

import java.lang.reflect.Method; //導入方法依賴的package包/類private void validateRuleMethod(MethodRuleDefinition, ?> ruleDefinition, Method ruleMethod, RuleSourceValidationProblemCollector problems) {if (Modifier.isPrivate(ruleMethod.getModifiers())) …

update se_Java SE 7 Update 25 –发行说明进行了解释。

update se昨天是CPU日。 Oracle通过6月的Java重要补丁更新发布了Java SE更新25 。 在4月的最后一次重大更新之后,这是最后一次与Oracle其他所有Oracle产品都不适合的Oracle重要补丁更新计划。 从2013年10月开始 ,Java安全修补程序将遵循四个年度安全发布…

java scavenge_请概述一下Java中都有哪些垃圾收集器

1、Serial(串行GC)收集器Serial收集器是一个新生代收集器,单线程执行,使用复制算法。它在进行垃圾收集时,必须暂停其他所有的工作线程(用户线程)。是Jvmclient模式下默认的新生代收集器。对于限定单个CPU的环境来说,Serial收集器由…

Java中的异步等待

编写异步代码很困难。 试图了解异步代码应该做什么的难度更大。 承诺是尝试描述延迟执行流程的一种常见方式:首先做一件事,然后再做另一件事,以防万一出错再做其他事情。 在许多语言中,承诺已成为协调异步行为的事实上的方法。 J…

java web ssh启动运行程序_[javaweb开发SSH] myeclipse启动tomcat时的bug

以前用的是myeclipse10.0的版本,我也不知道以前设置了什么,比较正常.由于以前的myeclipse无法装svn,所以装了一个10.7当连接数据库正常时,自然是好的一旦连接数据库不正常了(我故意将数...以前用的是myeclipse10.0的版本, 我也不知道以前设置了什么,比较正常.由于以前的myeclip…

java简单文本编译器_java -简易文本编辑器

import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;/*** Title:java -简易文本编辑器 ** Description: 08.5.5 简易功能* 1。 打开文件时,无法选择文件,需手动输入* 2. 文件大小超出 多行文本域时,未实现滚动…

阿帕奇光束

Apache Beam是一个开放源代码统一模型,用于定义批处理和流数据并行处理管道。 使用一种开源的Beam SDK,您可以构建一个定义管道的程序。 然后,该管道由Beam支持的分布式处理后端之一执行,这些后端包括Apache Apex , Ap…

java音乐登陆界面_第四篇——Spring音乐登录界面设计及实现(C#)

Spring音乐播放器,我们小组设计其启动时有一个登录界面,用户初次可以注册,输入用户名和密码,点击注册即将输入信息保存到register文本文件中;如果已有用户名,输入用户名和密码,点击登录&#xf…

java中线性结构的例子_java数据结构--线性结构

一、数据结构数据结构由数据和结构两部分组成,就是将数据按照一定的结构组合起来,这样不同的组合方式有不同的效率,可根据需求选择不同的结构应用在相应在场景。数据结构大致分为两类:线性结构(如数组,链表&#xff0c…

过滤序列,惰性序列_Java 8的惰性序列实现

过滤序列,惰性序列我刚刚在GitHub上发布了LazySeq库-这是我最近进行的Java 8实验的结果。 我希望你会喜欢它。 即使您觉得它不是很有用,它仍然是Java 8(以及一般而言)中的函数式编程的一课。 而且它可能是第一个针对Java 8的社区库&#xff0…

Spring Boot和JSP

本指南展示了如何使用Spring Boot通过JSP创建MVC Web应用程序。 先决条件: Eclipse IDE(最新版本) Maven的4 Java 1.8 1.创建Maven Web项目 打开eclipse,然后创建一个新的Maven Web项目,并将其命名为SpringBootWe…

java相关技术简介_java技术简介?

java技术简介?关注:186 答案:3 信息版本:手机版 电脑版解决时间 2021-01-17 11:41提问者坟地里唱嗨歌2021-01-17 01:04java技术简介?最佳答案二级知识专家哭嗻説侢見2021-01-17 01:13第一页:什么是Java?Java好象随处…

java布尔多少字节,在Java中将字节转换为长度为4的布尔数组

I need to convert a byte into an array of 4 booleans in Java. How might I go about this?解决方案Per Michael Petrottas comment to your question, you need to decide which bits in the 8-bit byte should be tested for the resulting boolean array. For demonstra…