I want to develop application using java frameworks(spring,hibernate,strut). This application has large complex operations.I want to know what is the best between JSF and angular? As well as i want reference for compare those technology

2 Answers 2


This is a hugely broad question, but to quickly address a main difference:

  • JSF is framework for dynamically generating HTML on the server side. There you can dynamically generate HTML elements directly based on your Java objects.
  • Angular manipulates the HTML on client side. You can have HTML elements reflecting your model in Angular - but these will be javascript objects (JSON).

The two aren't mutually exclusive - for example look at AngularFaces.

It really depends on what you're wanting to do. If your application is fairly static 'load a page, submit a form' then JSF will probably be right for you. If there is lots of clientside interaction with different HTML elements constantly changing, then a framework like Angular or React will be better for you.


Reading the question, it sounds very loaded for the answer you are seeking. Not to be sarcastic, but to present a simile it sounds like you want to fit a square peg but happen to find only circular or spherical problems.

To read "want to develop application using java frameworks" -- one have to understand why these solutions exist and what they solve compared to competing technology which are better at solving some other niche problems.

To add to the notes presented by dwjohnston, JSF has a 6 stage lifecycle (refer the complete guide for better understanding) that ties the actions on the web UI to data that gets persisted or process that invokes a backend webservice. Compared to the solution that is provided by JavaScript frameworks like Angular, React, Backbone to name a few; serve a problem space where lots of interactions on the Web UI translate to fewer backend process and does not drag down the entire application. To stay concise for the sake of answering the question, you need to approach the problem with a view of solving rather than looking for problems that can be solved by the solution that you want to be part of.

Not the answer you're looking for? Browse other questions tagged or ask your own question.