Java view technologies and frameworks: Difference between revisions

Content deleted Content added
 
(4 intermediate revisions by 3 users not shown)
Line 1:
{{Short description|NoneProgramming language and libraries}}
'''Java view technologies and frameworks''' are [[web-based]] [[software libraries]] that provide the [[user interface]], or "[[Model–view–controller|view-layer]]", of [[Java (programming language)|Java]] [[web application]]s. Such [[application framework]]s are used for defining [[web page]]s and handling the [[HTTP]] [[List of HTTP header fields#Requests|requests]] (clicks) generated by those web pages. As a sub-category of [[web framework]]s, view-layer frameworks often overlap to varying degrees with web frameworks that provide other functionality for Java web applications.
 
Line 8:
|-
! Action-based frameworks:
| [[Apache Struts 2|Apache Struts]], [[Spring Framework|Spring MVC]]
|-
! Component-based frameworks:
| [[Apache Click]], [[Apache Tapestry]], [[Apache Wicket]], [[Jakarta Server Faces|Jakarta Faces]]
|-
! Web template systems:
| [[Apache Tiles]], [[SiteMesh]], [[Thymeleaf]]
|-
|}
 
* [[Jakarta Server Faces|Jakarta Faces]] (JSF), [[Apache Tapestry]] and [[Apache Wicket]] are competing component-based technologies, abstracting the [[Stateless protocol|stateless]] HTTP request-response cycle and the [[Jakarta Servlet]] [[API]] behind an [[Object-oriented programming|object-oriented]], event-driven component model.
* In contrast, Struts and the [[Spring Framework|Spring MVC Framework]] are action-oriented frameworks that provide a thinner [[abstraction layer]] over the servlet [[API]].
* Apache Tiles is a templating framework designed to work with Struts.
* [[Facelets]] is a view definition and templating technology designed to work with JSF.
* [[SiteMesh]] can be used with any [[Jakarta Server Pages|Jakarta Pages]] (JSP).
* Facelets, Tapestry and Wicket have their own templating approaches based on [[HTML]]/[[XHTML]].
* [[Apache Click]] uses HTML based [[Apache Velocity]] templates and [[plain old Java object]]s (POJOs), with JSP optional.
Line 38:
 
==Apache Struts==
{{main |Apache Struts 2}}
 
* Struts provides for a [[coupling (computer programming)|decoupling]] of the Controller and the View.
Line 77:
* '''Competitor''': Tapestry, JSF
 
==Jakarta Faces (JSF) and Facelets==
{{main |Jakarta Server Faces |Facelets}}
 
* A specification for component-based view frameworks.