deltaspike-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tandrasc...@apache.org
Subject svn commit: r1568078 - /deltaspike/site/trunk/content/jsf.mdtext
Date Thu, 13 Feb 2014 22:44:41 GMT
Author: tandraschko
Date: Thu Feb 13 22:44:41 2014
New Revision: 1568078

URL: http://svn.apache.org/r1568078
Log:
added scopes prototype

Modified:
    deltaspike/site/trunk/content/jsf.mdtext

Modified: deltaspike/site/trunk/content/jsf.mdtext
URL: http://svn.apache.org/viewvc/deltaspike/site/trunk/content/jsf.mdtext?rev=1568078&r1=1568077&r2=1568078&view=diff
==============================================================================
--- deltaspike/site/trunk/content/jsf.mdtext (original)
+++ deltaspike/site/trunk/content/jsf.mdtext Thu Feb 13 22:44:41 2014
@@ -182,10 +182,49 @@ Don't forget to set the ClientWindowRend
 
 #Scopes (TODO)
 
-  - @WindowScoped
-  - @ViewAccessScoped
-  - @GroupedConversationScoped
-  - @ViewScoped
+## @WindowScoped
+The window-scope is like a session per window. That means that the data is bound to a window/tab
and it not shared between windows (like the session scope does). Usually you need the window-scope
instead of the session-scope. There aren't a lot of use-cases which need shared data between
windows.
+
+    :::java
+    @WindowScoped
+    public class PreferencesBean implements Serializable
+    {
+        //...
+    }
+
+## @ViewAccessScoped
+In case of conversations you have to un-scope beans manually (or they we be terminated automatically
after a timeout). However, sometimes you need beans with a lifetime which is as long as needed
and as short as possible - which are terminated automatically (as soon as possible). In such
an use-case you can use this scope. The simple rule is, as long as the bean is referenced
by a page - the bean will be available for the next page (if it's used again the bean will
be forwarded again). It is important that it's based on the view-id of a page (it isn't based
on the request) so e.g. Ajax requests <b>don't</b> trigger a cleanup if the request
doesn't access all view-access scoped beans of the page. That's also the reason for the name
@*View*AccessScoped.
+
+    :::java
+    @ViewAccessScoped
+    public class WizardBean implements Serializable
+    {
+        //...
+    }
+
+Hint: <br/>
+@ViewAccessScoped beans are best used in conjunction with the `CLIENTWINDOW` window handling,
which ensures a clean browser-tab separation without touching the old windowId. Otherwise
a 'open in new tab' on a page with a @ViewAccessScoped bean might cause the termination (and
re-initialization) of that bean.
+
+
+## @GroupedConversationScoped
+See <a href="#grouped-conversations">(Grouped-)Conversations</a>
+
+## @ViewScoped
+
+DeltaSpike provides an CDI context for the JSF 2.0/2.1 @javax.faces.bean.ViewScoped. You
can simply annotate your bean with @javax.faces.bean.ViewScoped and @Named.
+
+## JSF 2.0 Scopes
+
+JSF 2.0 introduced new annotations as well as a new scope - the View Scope. CODI allows to
use all the CDI mechanisms in beans annotated with:
+
+  - javax.faces.bean.ApplicationScoped
+  - javax.faces.bean.SessionScoped
+  - javax.faces.bean.RequestScoped
+  - javax.faces.bean.ViewScoped
+
+Furthermore, the managed-bean annotation (javax.faces.bean.ManagedBean) is mapped to @Named
from CDI.
+
+All these annotations are mapped automatically. So you won't face issues, if you import a
JSF 2 annotation instead of the corresponding CDI annotation.
 
 # Type-safe View-Configs
 
@@ -1183,8 +1222,6 @@ Example - Implicit sub-group:
 
 In the listing above all beans which implement the Wizard interface will be closed as soon
as you close the ImplicitSubGroup.
 
-#JSF ManagedBean to CDI mapping (TODO)
-
 #Converter & Validator Injection (TODO)
 
 #Event broadcasting (TODO)



Mime
View raw message