fbpx
Wikipedia

Jakarta Faces

Jakarta Faces, formerly Jakarta Server Faces and JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications.[2] It was formalized as a standard through the Java Community Process as part of the Java Platform, Enterprise Edition. It is an MVC web framework that simplifies the construction of user interfaces (UI) for server-based applications by using reusable UI components in a page.[3]

Jakarta Faces
Original author(s)Sun Microsystems
Developer(s)Eclipse Foundation
Stable release
4.0.0[1]  / 2022-05-19; 22 months ago
Repository
  • github.com/jakartaee/faces
Written inJava
TypeWeb application framework
Websitejakarta.ee/specifications/faces/

JSF 2.x uses Facelets as its default templating system. Users of the software may also use XUL or Java.[4] JSF 1.x uses JavaServer Pages (JSP) as its default templating system.

History edit

In 2001, the original Java Specification Request (JSR) for the technology that ultimately became JavaServer Faces proposed developing a package with the name javax.servlet.ui[5]

In June 2001, JavaWorld would report on Amy Fowler's team's design of "the JavaServer Faces API" (also known as "Moonwalk") as "an application framework for creating Web-based user interfaces".[6]

Latest developments edit

Facelets (which was designed specifically for Java Server Faces) was adopted as the official view technology for JSF 2.0. This eliminates the life-cycle conflicts that existed with JSP, forcing workarounds by Java developers.[7]

The new JSF developments also provide wide accessibility to Java annotations such as @ManagedBean, @ManagedProperty and @FacesComponent that removes the need for faces-config.xml, in all cases except framework extension. Navigation is also simplified, removing the need for faces-config.xml navigation cases. Page transitions can be invoked simply by passing the name of the desired View or Facelet.

The addition of Partial State Saving and Document Object Model (DOM) updates are part of the built-in standardized AJAX support.

The latest JSF release has built-in support for handling resources like images, CSS and Javascript, allowing artifacts to be included with component libraries, separated into JAR files, or simply co-located into a consistent place within the Web application. This includes logical naming and versioning of resources.

JSF 2.0 also includes a number of other changes like adding support for events, separate development, staging, and production modes, similar to RAILS_ENV in Ruby on Rails, and significantly expanding the standard set of components.

Update history edit

  • JSF 4.0 (2022-05-15) – Major features: Deleted some deprecated things (native managed beans, native EL references), no extended view by default, added ClientWindowScoped
  • JSF 3.0.0 (2020-10-28) – Package name changed from Javax to Jakarta.
  • JSF 2.3 (2019-09-10) – The first release of the Jakarta Server Pages API for Jakarta EE.Neither the API nor the behavior has changed.
  • JSF 2.3 (2017-03-28) – Major features: search Expressions, extensionless URLs, bean validation for complete classes, push communication using WebSocket, enhanced integration with CDI.[8]
  • JSF 2.2 (2013-05-21) – Introduced new concepts like stateless views, page flow and the ability to create portable resource contracts.[9]
  • JSF 2.1 (2010-11-22) – Maintenance release 2 of JSF 2.0. Only a very minor number of specification changes.[10][11]
  • JSF 2.0 (2009-07-01) – Major release for ease of use, enhanced functionality, and performance. Coincides with Java EE 6.
  • JSF 1.2 (2006-05-11) – Many improvements to core systems and APIs. Coincides with Java EE 5. Initial adoption into Java EE.
  • JSF 1.1 (2004-05-27) – Bug-fix release. No specification changes.
  • JSF 1.0 (2004-03-11) – Initial specification released.

How it works edit

Based on a component-driven UI design-model, JavaServer Faces uses XML files called view templates or Facelets views. The FacesServlet processes requests, loads the appropriate view template, builds a component tree, processes events, and renders the response (typically in the HTML language) to the client. The state of UI components and other objects of scope interest is saved at the end of each request in a process called stateSaving (note: transient true), and restored upon next creation of that view. Either the client or the server side can save objects and states.

JSF and AJAX edit

Mojarra
Other namesJSF RI
Original author(s)Sun Microsystems
Developer(s)Eclipse Foundation
Initial releaseMarch 3, 2004; 20 years ago (2004-03-03)
Stable release
3.0.2 / November 29, 2021; 2 years ago (2021-11-29)
Repositorygithub.com/eclipse-ee4j/mojarra
Written inJava
PlatformJakarta EE
Typeweb framework
LicenseEPL-2.0
Websiteeclipse-ee4j.github.io/mojarra/

JSF is often used together with AJAX, a Rich Internet application development technique. AJAX is a combination of web development techniques and technologies that make it possible to create rich user interfaces. The user interface components in Mojarra (the JSF reference implementation[12]) and Apache MyFaces were originally developed for HTML only, and AJAX had to be added via JavaScript. This has changed, however:

Because JSF supports multiple output formats, AJAX-enabled components can easily be added to improve user interfaces created with JSF. The JSF 2.0 specification provides built-in support for AJAX by standardizing the AJAX request lifecycle and providing simple development interfaces to AJAX events. The specification allows an event triggered by the client to go through validation, conversion, and method invocation, before returning the result to the browser via an XML DOM update.

JSF 2 includes support for graceful degradation when JavaScript is disabled in the browser.

AJAX-enabled components and frameworks edit

The following companies and projects offer AJAX-based JSF frameworks or component libraries:

Criticisms edit

ThoughtWorks, 2014 edit

In their January 2014 Technology Radar publication, ThoughtWorks wrote:[13]

We continue to see teams run into trouble using JSF – JavaServer Faces – and are recommending you avoid this technology. Teams seem to choose JSF because it is a JEE standard without really evaluating whether the programming model suits them. We think JSF is flawed because it tries to abstract away HTML, CSS and HTTP, exactly the reverse of what modern web frameworks do. JSF, like ASP.NET webforms, attempts to create statefulness on top of the stateless protocol HTTP and ends up causing a whole host of problems involving shared server-side state. We are aware of the improvements in JSF 2.0, but think the model is fundamentally broken. We recommend teams use simple frameworks and embrace and understand web technologies including HTTP, HTML and CSS.

Rebuttal edit

In February 2014, Çağatay Çivici (PrimeFaces Lead) responded to ThoughtWorks criticisms in a post titled JSF is not what you've been told anymore. Çivici argues that improvements in JSF over the years offer many features that embrace modern web development, providing the option to write your own JavaScript, HTML, and CSS. Also regarding state, Çivici wrote:[14]

JSF is a stateful framework by nature and state makes web applications easy to develop with. With improved state management techniques introduced in JSF 2.0+ (e.g. stateless mode, partial state saving), JSF can scale as well.

DZone, 2014 edit

In the article published November 2014 in the DZone website, titled "Why You Should Avoid JSF", Jens Schauder wrote:[15]

Facelets, the preferred presentation technology of JSF looks at first sight like an ordinary templating technology like the good old JSP or Thymeleaf. But if you look closer the horror becomes obvious. In the same place where you structure your HTML, you also place the logic what parts of the UI should get updated on an action. A clear violation of the separation of concerns principle in my book. Even better is the immediate attribute which changes the server side life cycle! And if this isn't enough it does it in different ways depending on what tag you use it on. You can't make stuff like this up.

TheServerSide, 2016 edit

In February 2016, the enterprise Java community website TheServerSide published an article recommending against the use of JSF, whose use could compromise the quality of the final product. The article ellaborated on five reasons:[16]

  1. Simple tasks become difficult;
  2. JSF lacks flexibility;
  3. The learning curve is steep;
  4. Incompatibility with standard Java technologies; and
  5. Primitive AJAX support.

References edit

  1. ^ "Release 4.0.0". 19 May 2022. Retrieved 24 October 2022.
  2. ^ Jakarta Faces 4.0
  3. ^ "JSF 2.0 Tutorial". mkyong. 2010-12-12. Retrieved 2017-04-28. JavaServer Faces (JSF) 2.0, is an MVC web framework which focus on simplifies building user interfaces (comes with 100+ ready UI tags) for Java web application and make reusable UI component easy to implement.
  4. ^ NoVDL: Write your JSF views in pure Java
  5. ^ "JSR 127: JavaServer Faces". Java Community process. Oracle Corporation. 2014. Retrieved 2014-08-05. 2.6 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.) [:] javax.servlet.ui
  6. ^ Armstrong, Eric (June 6, 2001). "Java Web services: What's not to like?". JavaWorld. Retrieved 2020-07-27. The JavaServer Faces API (aka Moonwalk) promises to provide an elegant solution for implementing interactive functionality on incompatible browsers. [...] Designed by a team led by Amy Fowler, Sun's AWT and Swing architect, the JavaServer Faces API will provide a collection of GUI tools that will run on common browsers using standard HTML.
  7. ^ Bergsten, Hans. "Improving JSF by dumping JSP". O'Reilly. Retrieved 18 August 2011.
  8. ^ Tijms, Arjan. "What's new in JSF 2.3?". Musings of a Java EE developer. Retrieved 2020-07-27.
  9. ^ JSF 2.2 (JSR-344) is final |techscouting through the java news 2020-07-27 at the Wayback Machine. Blog.oio.de. Retrieved on 2020-07-27.
  10. ^ JSR 314 JavaServer Faces 2.1 JSF 2.1 |techscouting through the java news. Blog.oio.de. Retrieved on 2020-07-27.
  11. ^ Bosch, Andy (2010-11-29). "Was ist neu in JSF 2.1" (in German). it-republik.de. Retrieved 2013-02-19.
  12. ^ Lubke, Ryan (5 December 2007). . Ryan Lubke's Blog. Sun Microsystems. Oracle Corporation. Archived from the original on 2017-04-07.
  13. ^ (PDF). ThoughtWorks. January 2014. p. 12. Archived from the original (PDF) on 2016-04-07. Retrieved 2014-01-30.
  14. ^ "JSF is not what you've been told anymore". PrimeFaces. 2014-02-12. Retrieved 2020-11-24.
  15. ^ Jens Schauder (November 2014). "Why You Should Avoid JSF". DZone.
  16. ^ McKenzie, Cameron (February 16, 2016). "Five drawbacks to choosing JSF as your web application framework". TheServerSide. Retrieved December 22, 2020.

External links edit

  • Official website  

jakarta, faces, this, article, tone, style, reflect, encyclopedic, tone, used, wikipedia, wikipedia, guide, writing, better, articles, suggestions, november, 2012, learn, when, remove, this, template, message, formerly, jakarta, server, faces, javaserver, face. This article s tone or style may not reflect the encyclopedic tone used on Wikipedia See Wikipedia s guide to writing better articles for suggestions November 2012 Learn how and when to remove this template message Jakarta Faces formerly Jakarta Server Faces and JavaServer Faces JSF is a Java specification for building component based user interfaces for web applications 2 It was formalized as a standard through the Java Community Process as part of the Java Platform Enterprise Edition It is an MVC web framework that simplifies the construction of user interfaces UI for server based applications by using reusable UI components in a page 3 Jakarta FacesOriginal author s Sun MicrosystemsDeveloper s Eclipse FoundationStable release4 0 0 1 2022 05 19 22 months agoRepositorygithub wbr com wbr jakartaee wbr facesWritten inJavaTypeWeb application frameworkWebsitejakarta wbr ee wbr specifications wbr faces wbr JSF 2 x uses Facelets as its default templating system Users of the software may also use XUL or Java 4 JSF 1 x uses JavaServer Pages JSP as its default templating system Contents 1 History 1 1 Latest developments 1 2 Update history 2 How it works 2 1 JSF and AJAX 3 AJAX enabled components and frameworks 4 Criticisms 4 1 ThoughtWorks 2014 4 1 1 Rebuttal 4 2 DZone 2014 4 3 TheServerSide 2016 5 References 6 External linksHistory editThis section needs expansion You can help by adding to it August 2013 In 2001 the original Java Specification Request JSR for the technology that ultimately became JavaServer Faces proposed developing a package with the name javax servlet ui 5 In June 2001 JavaWorld would report on Amy Fowler s team s design of the JavaServer Faces API also known as Moonwalk as an application framework for creating Web based user interfaces 6 Latest developments edit Facelets which was designed specifically for Java Server Faces was adopted as the official view technology for JSF 2 0 This eliminates the life cycle conflicts that existed with JSP forcing workarounds by Java developers 7 The new JSF developments also provide wide accessibility to Java annotations such as ManagedBean ManagedProperty and FacesComponent that removes the need for faces config xml in all cases except framework extension Navigation is also simplified removing the need for faces config xml navigation cases Page transitions can be invoked simply by passing the name of the desired View or Facelet The addition of Partial State Saving and Document Object Model DOM updates are part of the built in standardized AJAX support The latest JSF release has built in support for handling resources like images CSS and Javascript allowing artifacts to be included with component libraries separated into JAR files or simply co located into a consistent place within the Web application This includes logical naming and versioning of resources JSF 2 0 also includes a number of other changes like adding support for events separate development staging and production modes similar to RAILS ENV in Ruby on Rails and significantly expanding the standard set of components Update history edit JSF 4 0 2022 05 15 Major features Deleted some deprecated things native managed beans native EL references no extended view by default added ClientWindowScoped JSF 3 0 0 2020 10 28 Package name changed from Javax to Jakarta JSF 2 3 2019 09 10 The first release of the Jakarta Server Pages API for Jakarta EE Neither the API nor the behavior has changed JSF 2 3 2017 03 28 Major features search Expressions extensionless URLs bean validation for complete classes push communication using WebSocket enhanced integration with CDI 8 JSF 2 2 2013 05 21 Introduced new concepts like stateless views page flow and the ability to create portable resource contracts 9 JSF 2 1 2010 11 22 Maintenance release 2 of JSF 2 0 Only a very minor number of specification changes 10 11 JSF 2 0 2009 07 01 Major release for ease of use enhanced functionality and performance Coincides with Java EE 6 JSF 1 2 2006 05 11 Many improvements to core systems and APIs Coincides with Java EE 5 Initial adoption into Java EE JSF 1 1 2004 05 27 Bug fix release No specification changes JSF 1 0 2004 03 11 Initial specification released How it works editBased on a component driven UI design model JavaServer Faces uses XML files called view templates or Facelets views The FacesServlet processes requests loads the appropriate view template builds a component tree processes events and renders the response typically in the HTML language to the client The state of UI components and other objects of scope interest is saved at the end of each request in a process called stateSaving note transient true and restored upon next creation of that view Either the client or the server side can save objects and states JSF and AJAX edit MojarraOther namesJSF RIOriginal author s Sun MicrosystemsDeveloper s Eclipse FoundationInitial releaseMarch 3 2004 20 years ago 2004 03 03 Stable release3 0 2 November 29 2021 2 years ago 2021 11 29 Repositorygithub wbr com wbr eclipse ee4j wbr mojarraWritten inJavaPlatformJakarta EETypeweb frameworkLicenseEPL 2 0Websiteeclipse ee4j wbr github wbr io wbr mojarra wbr JSF is often used together with AJAX a Rich Internet application development technique AJAX is a combination of web development techniques and technologies that make it possible to create rich user interfaces The user interface components in Mojarra the JSF reference implementation 12 and Apache MyFaces were originally developed for HTML only and AJAX had to be added via JavaScript This has changed however Because JSF supports multiple output formats AJAX enabled components can easily be added to improve user interfaces created with JSF The JSF 2 0 specification provides built in support for AJAX by standardizing the AJAX request lifecycle and providing simple development interfaces to AJAX events The specification allows an event triggered by the client to go through validation conversion and method invocation before returning the result to the browser via an XML DOM update JSF 2 includes support for graceful degradation when JavaScript is disabled in the browser AJAX enabled components and frameworks editThe following companies and projects offer AJAX based JSF frameworks or component libraries Apache MyFaces The Apache Foundation JSF implementation with AJAX components Backbase Enterprise AJAX JSF Edition AJAX framework BootsFaces Open source JSF Framework based on Bootstrap IBM Notes XPages ICEfaces open source Java JSF extension framework and rich components AJAX without JavaScript JBoss RichFaces derived from and replaces AJAX4jsf AJAX enabled JSF components for layout file upload forms inputs and many other features It reached its end of life in June 2016 OmniFaces open source JSF utility library OpenFaces AJAX framework with JSF components Oracle ADF Faces Rich Client Oracle Application Development Framework PrimeFaces AJAX framework with JSF components Sun Java BluePrints AJAX components ZK AJAX framework with JSF componentsCriticisms editThoughtWorks 2014 edit In their January 2014 Technology Radar publication ThoughtWorks wrote 13 We continue to see teams run into trouble using JSF JavaServer Faces and are recommending you avoid this technology Teams seem to choose JSF because it is a JEE standard without really evaluating whether the programming model suits them We think JSF is flawed because it tries to abstract away HTML CSS and HTTP exactly the reverse of what modern web frameworks do JSF like ASP NET webforms attempts to create statefulness on top of the stateless protocol HTTP and ends up causing a whole host of problems involving shared server side state We are aware of the improvements in JSF 2 0 but think the model is fundamentally broken We recommend teams use simple frameworks and embrace and understand web technologies including HTTP HTML and CSS Rebuttal edit In February 2014 Cagatay Civici PrimeFaces Lead responded to ThoughtWorks criticisms in a post titled JSF is not what you ve been told anymore Civici argues that improvements in JSF over the years offer many features that embrace modern web development providing the option to write your own JavaScript HTML and CSS Also regarding state Civici wrote 14 JSF is a stateful framework by nature and state makes web applications easy to develop with With improved state management techniques introduced in JSF 2 0 e g stateless mode partial state saving JSF can scale as well DZone 2014 editIn the article published November 2014 in the DZone website titled Why You Should Avoid JSF Jens Schauder wrote 15 Facelets the preferred presentation technology of JSF looks at first sight like an ordinary templating technology like the good old JSP or Thymeleaf But if you look closer the horror becomes obvious In the same place where you structure your HTML you also place the logic what parts of the UI should get updated on an action A clear violation of the separation of concerns principle in my book Even better is the immediate attribute which changes the server side life cycle And if this isn t enough it does it in different ways depending on what tag you use it on You can t make stuff like this up TheServerSide 2016 edit In February 2016 the enterprise Java community website TheServerSide published an article recommending against the use of JSF whose use could compromise the quality of the final product The article ellaborated on five reasons 16 Simple tasks become difficult JSF lacks flexibility The learning curve is steep Incompatibility with standard Java technologies and Primitive AJAX support References edit Release 4 0 0 19 May 2022 Retrieved 24 October 2022 Jakarta Faces 4 0 JSF 2 0 Tutorial mkyong 2010 12 12 Retrieved 2017 04 28 JavaServer Faces JSF 2 0 is an MVC web framework which focus on simplifies building user interfaces comes with 100 ready UI tags for Java web application and make reusable UI component easy to implement NoVDL Write your JSF views in pure Java JSR 127 JavaServer Faces Java Community process Oracle Corporation 2014 Retrieved 2014 08 05 2 6 Is there a proposed package name for the API Specification i e javapi something org something etc javax servlet ui Armstrong Eric June 6 2001 Java Web services What s not to like JavaWorld Retrieved 2020 07 27 The JavaServer Faces API aka Moonwalk promises to provide an elegant solution for implementing interactive functionality on incompatible browsers Designed by a team led by Amy Fowler Sun s AWT and Swing architect the JavaServer Faces API will provide a collection of GUI tools that will run on common browsers using standard HTML Bergsten Hans Improving JSF by dumping JSP O Reilly Retrieved 18 August 2011 Tijms Arjan What s new in JSF 2 3 Musings of a Java EE developer Retrieved 2020 07 27 JSF 2 2 JSR 344 is final techscouting through the java news Archived 2020 07 27 at the Wayback Machine Blog oio de Retrieved on 2020 07 27 JSR 314 JavaServer Faces 2 1 JSF 2 1 techscouting through the java news Blog oio de Retrieved on 2020 07 27 Bosch Andy 2010 11 29 Was ist neu in JSF 2 1 in German it republik de Retrieved 2013 02 19 Lubke Ryan 5 December 2007 Project Mojarra the JSF RI gets a code name Ryan Lubke s Blog Sun Microsystems Oracle Corporation Archived from the original on 2017 04 07 Technology Radar PDF ThoughtWorks January 2014 p 12 Archived from the original PDF on 2016 04 07 Retrieved 2014 01 30 JSF is not what you ve been told anymore PrimeFaces 2014 02 12 Retrieved 2020 11 24 Jens Schauder November 2014 Why You Should Avoid JSF DZone McKenzie Cameron February 16 2016 Five drawbacks to choosing JSF as your web application framework TheServerSide Retrieved December 22 2020 External links edit nbsp Wikimedia Commons has media related to Jakarta Faces Official website nbsp Retrieved from https en wikipedia org w index php title Jakarta Faces amp oldid 1212132584, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.