<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://luminoussheep.net/mediawiki/index.php?action=history&amp;feed=atom&amp;title=JSF</id>
	<title>JSF - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://luminoussheep.net/mediawiki/index.php?action=history&amp;feed=atom&amp;title=JSF"/>
	<link rel="alternate" type="text/html" href="https://luminoussheep.net/mediawiki/index.php?title=JSF&amp;action=history"/>
	<updated>2026-05-11T19:20:32Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://luminoussheep.net/mediawiki/index.php?title=JSF&amp;diff=64&amp;oldid=prev</id>
		<title>Martin: Created page with &quot;Brings swing like programming to the web: * set of UI components * event driven * component model (ability to extend) ** buttons, tables, input, tree handling  JSF input exa...&quot;</title>
		<link rel="alternate" type="text/html" href="https://luminoussheep.net/mediawiki/index.php?title=JSF&amp;diff=64&amp;oldid=prev"/>
		<updated>2021-09-14T21:31:24Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Brings swing like programming to the web: * set of UI components * event driven * component model (ability to extend) ** buttons, tables, input, tree handling  JSF input exa...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Brings swing like programming to the web:&lt;br /&gt;
* set of UI components&lt;br /&gt;
* event driven&lt;br /&gt;
* component model (ability to extend)&lt;br /&gt;
** buttons, tables, input, tree handling&lt;br /&gt;
&lt;br /&gt;
[[JSF input example]]&lt;br /&gt;
&lt;br /&gt;
* Beans are used to communicate between the interface and application&lt;br /&gt;
* JSF pages can be .jsp or .jsf the url convention is .faces (with mapping) (jsf require more configuration)&lt;br /&gt;
* Can use normal jsp or XML version&lt;br /&gt;
&lt;br /&gt;
* Note handles (legitimate) beans that don&amp;#039;t have both getters and setters&lt;br /&gt;
&lt;br /&gt;
Can call methods, set parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;jhtml:inputText value=&amp;quot;#{user.name}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;jhtml:commandButton value=&amp;quot;Submit&amp;quot; action=&amp;quot;#{foo.doStuff}&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Has support for:&lt;br /&gt;
* Validation&lt;br /&gt;
* Data conversion&lt;br /&gt;
* Internationalisation&lt;br /&gt;
* Custom components&lt;br /&gt;
* Different clients e.g. wml&lt;br /&gt;
&lt;br /&gt;
== Processing ==&lt;br /&gt;
* &amp;quot;Restore View&amp;quot; - retrieves new values, creates component tree for processing (component for each bean/action class)&lt;br /&gt;
* &amp;quot;Apply Request Values&amp;quot; - each bean component processes it&amp;#039;s values&lt;br /&gt;
* &amp;quot;Process Events&amp;quot; - adds action to list for each event button/link&lt;br /&gt;
* &amp;quot;Process Validations&amp;quot; - type conversion etc&lt;br /&gt;
** skips to &amp;quot;Render Response&amp;quot; on error for data re-entry - redisplays data entry page - need to display error to indicate why&lt;br /&gt;
* &amp;quot;Update Model Values&amp;quot; - applies the new values to the beans&lt;br /&gt;
* &amp;quot;Invoke Application&amp;quot; - invokes the list of actions&lt;br /&gt;
** result is a string passed to the navigation handler - used to look up next page&lt;br /&gt;
* &amp;quot;Render Response&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beans&lt;br /&gt;
* backing beans - beans tying behaviour to interface form&lt;br /&gt;
* public no arg constructor&lt;br /&gt;
&lt;br /&gt;
Notation:&lt;br /&gt;
* ${..} immediate evaluation - on processing the page - typically JSP/JSLT&lt;br /&gt;
* #{..} deferred evaluation - evaluated whenever needed - typically  JSF&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
</feed>