You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bu...@apache.org on 2014/02/06 02:32:15 UTC
svn commit: r896573 [4/4] - in /websites/staging/myfaces/trunk/content: ./
wiki/ wiki/core/ wiki/core/committer-and-pmc-guide/
wiki/core/committer-and-pmc-guide/myfaces-project-management/
wiki/core/user-guide/ wiki/core/user-guide/configuration-of-spe...
Modified: websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/executing-methods-from-link-or-button-inside-a-table.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/executing-methods-from-link-or-button-inside-a-table.html (original)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/executing-methods-from-link-or-button-inside-a-table.html Thu Feb 6 01:32:14 2014
@@ -84,7 +84,7 @@
</div>
<div id="body_column">
<div>
- <p><a href="/">Home</a> » <a href="/wiki/">Wiki</a> » <a href="/wiki/core/">Core</a> » <a href="/wiki/core/user-guide.html">MyFaces Core User Guide</a> » <a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/">Jsf-and-myfaces-howtos</a> » <a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables.html">Working with tables</a></p>
+ <p><a href="/">Home</a> » <a href="/wiki/">Wiki</a> » <a href="/wiki/core/">Core</a> » <a href="/wiki/core/user-guide.html">MyFaces Core User Guide</a> » <a href="/wiki/core/user-guide/jsf-and-myfaces-howtos.html">JSF and MyFaces Howtos</a> » <a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables.html">Working with tables</a></p>
<h2>Executing methods from link or button inside a table</h2>
<div id="content" class="grid_16"><div class="section-content"><h3>Handling Command components within table columns</h3>
@@ -114,16 +114,16 @@ see exactly which item was selected</p>
<p>This solution looks something like the following:</p>
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body><![CDATA[
-<h:dataTable var="emp" .... ></p>
-<p><h:commandLink action="#{employeeAction.prepareForEdit}">
- <h:outputText value="#{msgs.edit}" />
- <t:updateActionListener property="#{employeeAction.currentEmployee}"
-value="#{emp}" />
-</h:commandLink>
-]
-]></ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="nt"><h:dataTable</span> <span class="na">var=</span><span class="s">"emp"</span> <span class="err">....</span> <span class="nt">></span>
+
+<span class="nt"><h:commandLink</span> <span class="na">action=</span><span class="s">"#{employeeAction.prepareForEdit}"</span><span class="nt">></span>
+ <span class="nt"><h:outputText</span> <span class="na">value=</span><span class="s">"#{msgs.edit}"</span> <span class="nt">/></span>
+ <span class="nt"><t:updateActionListener</span> <span class="na">property=</span><span class="s">"#{employeeAction.currentEmployee}"</span>
+<span class="na">value=</span><span class="s">"#{emp}"</span> <span class="nt">/></span>
+<span class="nt"></h:commandLink></span>
+</pre></div>
+
+
<p>When the above link is clicked, JSF will first call the
setCurrentEmployee(Employee) method on the backing bean (which should store
its parameter as a member on the backing bean). The prepareForEdit method
@@ -155,42 +155,40 @@ component can be found, and its DataMode
even simpler, as the "getRowData" method on the UIData component
can be used directly (it just delegates to the DataModel method).<br />
The JSF page looks like this:
-<ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body><![CDATA[
-<h:commandLink actionListener="#{employeeAction.prepareForEdit}">
- <h:outputText value="#{msgs.edit}" />
-</h:commandLink>
-]
-]></ac:plain-text-body></ac:macro>
+
+ :::xml
+ <h:commandLink actionListener="#{employeeAction.prepareForEdit}">
+ <h:outputText value="#{msgs.edit}" />
+ </h:commandLink>
+
And the backing bean looks like this:
-<ac:macro
-ac:name="code"><ac:default-parameter>java</ac:default-parameter><ac:plain-text-body><![CDATA[
- public void prepareForEdit(ActionEvent anEvent) {
- YourBeanClass tmpBean = null;
+ :::java
+ public void prepareForEdit(ActionEvent anEvent) {
- UIComponent tmpComponent = anEvent.getComponent();
+ YourBeanClass tmpBean = null;
- while (null != tmpComponent && !(tmpComponent instanceof UIData)) {
- tmpComponent = tmpComponent.getParent();
- }
+ UIComponent tmpComponent = anEvent.getComponent();
- if (tmpComponent != null && (tmpComponent instanceof UIData)) {
- Object tmpRowData = ((UIData) tmpComponent).getRowData();
- if (tmpRowData instanceof YourBeanClass) {
- tmpBean = (YourBeanClass) tmpRowData;
+ while (null != tmpComponent && !(tmpComponent instanceof UIData)) {
+ tmpComponent = tmpComponent.getParent();
+ }
- //TODO Implementation of your method
+ if (tmpComponent != null && (tmpComponent instanceof UIData)) {
+ Object tmpRowData = ((UIData) tmpComponent).getRowData();
+ if (tmpRowData instanceof YourBeanClass) {
+ tmpBean = (YourBeanClass) tmpRowData;
- }
- }
+ //TODO Implementation of your method
- //TODO Exception Handling if UIData not found or tmpRowBean of wrong
-type
+ }
+ }
- }
-]
-]></ac:plain-text-body></ac:macro></li>
+ //TODO Exception Handling if UIData not found or tmpRowBean of wrong
+ type
+
+ }
+</li>
<li>You could also use the "binding" attribute on the
h:dataTable to make it accessable from the backing bean. However component
bindings have their own problems and should be avoided where possible.</li>
@@ -203,44 +201,44 @@ may have previously solved this problem
as request parameters as part of a link, perhaps via something like
this:</p>
-<p><ac:macro ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body><![CDATA<a href="cdata[<a-href="/appcontext/someaction.do?id=1234&useraction=prepareedit">edit</a>.html"><a href="/appContext/someAction.do?id=1234&userAction=prepareEdit">Edit</a></a>
-]></ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="nt"><a</span> <span class="na">href=</span><span class="s">"/appContext/someAction.do?id=1234&userAction=prepareEdit"</span><span class="nt">></span>Edit<span class="nt"></a></span>](cdata[<span class="nt"><a-href</span><span class="err">="/appcontext/someaction.do?</span><span class="na">id=</span><span class="s">1234&useraction=prepareedit"</span><span class="nt">></span>edit<span class="nt"></a></span>.html)
+</pre></div>
+
+
<p>Using JSTL to create the above:</p>
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body><![CDATA[
-<c:url value="someAction.do" var="url">
- <c:param name="id" value="1234" />
- <c:param name="userAction" value="prepareEdit" />
-</c:url>
-<a href="${url}">Edit</a>
-]
-]></ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="nt"><c:url</span> <span class="na">value=</span><span class="s">"someAction.do"</span> <span class="na">var=</span><span class="s">"url"</span><span class="nt">></span>
+ <span class="nt"><c:param</span> <span class="na">name=</span><span class="s">"id"</span> <span class="na">value=</span><span class="s">"1234"</span> <span class="nt">/></span>
+ <span class="nt"><c:param</span> <span class="na">name=</span><span class="s">"userAction"</span> <span class="na">value=</span><span class="s">"prepareEdit"</span> <span class="nt">/></span>
+<span class="nt"></c:url></span>
+<span class="nt"><a</span> <span class="na">href=</span><span class="s">"${url}"</span><span class="nt">></span>Edit<span class="nt"></a></span>
+</pre></div>
+
+
<p>It is possible to use this approach with JSF, but it is not in the
spirit of JSF; the solutions documented above are generally considered
better. Nevertheless, this can be implemented as follows:</p>
<p>Use an f:param tag inside of the commandButton or commandLink:</p>
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body><![CDATA[
-<t:dataTable var="emp" .... ></p>
-<p><h:commandLink id="editLink" action="#{employeeAction.prepareEdit}">
- <h:outputText value="#{msg.edit}"/>
- <f:param name="id" value="#{emp.id}"/>
-</h:commandLink>
-]
-]></ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="nt"><t:dataTable</span> <span class="na">var=</span><span class="s">"emp"</span> <span class="err">....</span> <span class="nt">></span>
+
+ <span class="nt"><h:commandLink</span> <span class="na">id=</span><span class="s">"editLink"</span> <span class="na">action=</span><span class="s">"#{employeeAction.prepareEdit}"</span><span class="nt">></span>
+ <span class="nt"><h:outputText</span> <span class="na">value=</span><span class="s">"#{msg.edit}"</span><span class="nt">/></span>
+ <span class="nt"><f:param</span> <span class="na">name=</span><span class="s">"id"</span> <span class="na">value=</span><span class="s">"#{emp.id}"</span><span class="nt">/></span>
+ <span class="nt"></h:commandLink></span>
+</pre></div>
+
+
<p>To then get a handle to this request parameter in your
"prepareEdit" method, you could do:</p>
-<p><ac:macro
-ac:name="code"><ac:default-parameter>java</ac:default-parameter><ac:plain-text-body><![CDATA[
-FacesContext context = FacesContext.getCurrentInstance();
-Map map = context.getExternalContext().getRequestParameterMap();
-String employeeID = (String) map.get("id");
-]
-]></ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre><span class="n">FacesContext</span> <span class="n">context</span> <span class="o">=</span> <span class="n">FacesContext</span><span class="o">.</span><span class="na">getCurrentInstance</span><span class="o">();</span>
+<span class="n">Map</span> <span class="n">map</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getExternalContext</span><span class="o">().</span><span class="na">getRequestParameterMap</span><span class="o">();</span>
+<span class="n">String</span> <span class="n">employeeID</span> <span class="o">=</span> <span class="o">(</span><span class="n">String</span><span class="o">)</span> <span class="n">map</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"id"</span><span class="o">);</span>
+</pre></div>
+
+
<p>Note that in this case the parameter is a String, which you'll have to
map to the appropriate object id yourself. Plus, you have extra lines of
code just to get a handle to the map holding the parameters. Sure you can
Modified: websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/get-row-data-from-an-actionlistener.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/get-row-data-from-an-actionlistener.html (original)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/get-row-data-from-an-actionlistener.html Thu Feb 6 01:32:14 2014
@@ -84,7 +84,7 @@
</div>
<div id="body_column">
<div>
- <p><a href="/">Home</a> » <a href="/wiki/">Wiki</a> » <a href="/wiki/core/">Core</a> » <a href="/wiki/core/user-guide.html">MyFaces Core User Guide</a> » <a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/">Jsf-and-myfaces-howtos</a> » <a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables.html">Working with tables</a></p>
+ <p><a href="/">Home</a> » <a href="/wiki/">Wiki</a> » <a href="/wiki/core/">Core</a> » <a href="/wiki/core/user-guide.html">MyFaces Core User Guide</a> » <a href="/wiki/core/user-guide/jsf-and-myfaces-howtos.html">JSF and MyFaces Howtos</a> » <a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables.html">Working with tables</a></p>
<h2>Get row data from an ActionListener</h2>
<div id="content" class="grid_16"><div class="section-content"><h2>Handling buttons or links in table rows</h2>
@@ -92,55 +92,51 @@
is an easy way to get to row bean from an <a
href="http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/api/javax/faces/event/ActionListener.html">javax.faces.event.ActionListener</a>.</p>
-<p><ac:macro
-ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body><![CDATA[
-<h:dataTable value="#{ResultsBean.hitSet.hits}" var="hit">
- <h:column>
- <h:commandLink>
- <f:actionListener type="net.java.OrderActionListener" />
- <h:outputText value="Order" />
- </h:commandLink>
+<div class="codehilite"><pre><span class="nt"><h:dataTable</span> <span class="na">value=</span><span class="s">"#{ResultsBean.hitSet.hits}"</span> <span class="na">var=</span><span class="s">"hit"</span><span class="nt">></span>
+ <span class="nt"><h:column></span>
+ <span class="nt"><h:commandLink></span>
+ <span class="nt"><f:actionListener</span> <span class="na">type=</span><span class="s">"net.java.OrderActionListener"</span> <span class="nt">/></span>
+ <span class="nt"><h:outputText</span> <span class="na">value=</span><span class="s">"Order"</span> <span class="nt">/></span>
+ <span class="nt"></h:commandLink></span>
...
- </h:column>
-</h:dataTable>
-]
-]></ac:plain-text-body></ac:macro></p>
+ <span class="nt"></h:column></span>
+<span class="nt"></h:dataTable></span>
+</pre></div>
+
+
<p>By this simple Java code in your subclass of <a
href="http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/api/javax/faces/event/ActionListener.html">javax.faces.event.ActionListener</a>
you get the row bean.</p>
-<p><ac:macro
-ac:name="code"><ac:default-parameter>java</ac:default-parameter><ac:plain-text-body><![CDATA[
-public class OrderActionListener implements ActionListener {</p>
-<p>public void processAction(ActionEvent anEvent) throws
-AbortProcessingException {</p>
-<div class="codehilite"><pre><span class="n">YourBeanClass</span> <span class="n">tmpBean</span> <span class="p">=</span> <span class="n">null</span><span class="p">;</span>
-
-<span class="n">UIComponent</span> <span class="n">tmpComponent</span> <span class="p">=</span> <span class="n">anEvent</span><span class="p">.</span><span class="n">getComponent</span><span class="p">();</span>
-
-<span class="k">while</span> <span class="p">(</span><span class="n">null</span> !<span class="p">=</span> <span class="n">tmpComponent</span> <span class="o">&&</span> !<span class="p">(</span><span class="n">tmpComponent</span> <span class="n">instanceof</span> <span class="n">UIData</span><span class="p">))</span> <span class="p">{</span>
- <span class="n">tmpComponent</span> <span class="p">=</span> <span class="n">tmpComponent</span><span class="p">.</span><span class="n">getParent</span><span class="p">();</span>
-<span class="p">}</span>
-
-<span class="k">if</span> <span class="p">(</span><span class="n">tmpComponent</span> !<span class="p">=</span> <span class="n">null</span> <span class="o">&&</span> <span class="p">(</span><span class="n">tmpComponent</span> <span class="n">instanceof</span> <span class="n">UIData</span><span class="p">))</span> <span class="p">{</span>
- <span class="n">Object</span> <span class="n">tmpRowData</span> <span class="p">=</span> <span class="p">((</span><span class="n">UIData</span><span class="p">)</span> <span class="n">tmpComponent</span><span class="p">).</span><span class="n">getRowData</span><span class="p">();</span>
- <span class="k">if</span> <span class="p">(</span><span class="n">tmpRowData</span> <span class="n">instanceof</span> <span class="n">YourBeanClass</span><span class="p">)</span> <span class="p">{</span>
-<span class="n">tmpBean</span> <span class="p">=</span> <span class="p">(</span><span class="n">YourBeanClass</span><span class="p">)</span> <span class="n">tmpRowData</span><span class="p">;</span>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kd">class</span> <span class="nc">OrderActionListener</span> <span class="kd">implements</span> <span class="n">ActionListener</span> <span class="o">{</span>
-<span class="o">//</span><span class="n">TODO</span> <span class="n">Implementation</span> <span class="n">of</span> <span class="n">your</span> <span class="n">method</span>
+ <span class="kd">public</span> <span class="kt">void</span> <span class="nf">processAction</span><span class="o">(</span><span class="n">ActionEvent</span> <span class="n">anEvent</span><span class="o">)</span> <span class="kd">throws</span>
+<span class="n">AbortProcessingException</span> <span class="o">{</span>
- <span class="p">}</span>
-<span class="p">}</span>
+ <span class="n">YourBeanClass</span> <span class="n">tmpBean</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
-<span class="o">//</span><span class="n">TODO</span> <span class="n">Exception</span> <span class="n">Handling</span> <span class="k">if</span> <span class="n">UIData</span> <span class="n">not</span> <span class="n">found</span> <span class="n">or</span> <span class="n">tmpRowBean</span> <span class="n">of</span> <span class="n">wrong</span>
-</pre></div>
+ <span class="n">UIComponent</span> <span class="n">tmpComponent</span> <span class="o">=</span> <span class="n">anEvent</span><span class="o">.</span><span class="na">getComponent</span><span class="o">();</span>
+
+ <span class="k">while</span> <span class="o">(</span><span class="kc">null</span> <span class="o">!=</span> <span class="n">tmpComponent</span> <span class="o">&&</span> <span class="o">!(</span><span class="n">tmpComponent</span> <span class="k">instanceof</span> <span class="n">UIData</span><span class="o">))</span> <span class="o">{</span>
+ <span class="n">tmpComponent</span> <span class="o">=</span> <span class="n">tmpComponent</span><span class="o">.</span><span class="na">getParent</span><span class="o">();</span>
+ <span class="o">}</span>
+
+ <span class="k">if</span> <span class="o">(</span><span class="n">tmpComponent</span> <span class="o">!=</span> <span class="kc">null</span> <span class="o">&&</span> <span class="o">(</span><span class="n">tmpComponent</span> <span class="k">instanceof</span> <span class="n">UIData</span><span class="o">))</span> <span class="o">{</span>
+ <span class="n">Object</span> <span class="n">tmpRowData</span> <span class="o">=</span> <span class="o">((</span><span class="n">UIData</span><span class="o">)</span> <span class="n">tmpComponent</span><span class="o">).</span><span class="na">getRowData</span><span class="o">();</span>
+ <span class="k">if</span> <span class="o">(</span><span class="n">tmpRowData</span> <span class="k">instanceof</span> <span class="n">YourBeanClass</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">tmpBean</span> <span class="o">=</span> <span class="o">(</span><span class="n">YourBeanClass</span><span class="o">)</span> <span class="n">tmpRowData</span><span class="o">;</span>
+
+ <span class="c1">//TODO Implementation of your method</span>
+
+ <span class="o">}</span>
+ <span class="o">}</span>
+ <span class="c1">//TODO Exception Handling if UIData not found or tmpRowBean of wrong</span>
+<span class="n">type</span>
-<p>type</p>
-<p>}
-}
-]
-]></ac:plain-text-body></ac:macro></p></div></div>
+ <span class="o">}</span>
+<span class="o">}</span>
+</pre></div></div></div>
</div>
</div>
<div class="clear"></div>
Modified: websites/staging/myfaces/trunk/content/wiki/core/user-guide/migration-guide.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/migration-guide.html (original)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/migration-guide.html Thu Feb 6 01:32:14 2014
@@ -86,7 +86,10 @@
<div>
<p><a href="/">Home</a> » <a href="/wiki/">Wiki</a> » <a href="/wiki/core/">Core</a> » <a href="/wiki/core/user-guide.html">MyFaces Core User Guide</a></p>
<h2>Migration Guide</h2>
- <div id="content" class="grid_16"><div class="section-content"><p><ac:macro ac:name="children" /></p></div></div>
+ <div id="content" class="grid_16"><div class="section-content"><ul>
+<li><a href="/wiki/core/user-guide/migration-guide/from-1.2-to-2.0---2.1.html">From 1.2 to 2.0 - 2.1</a></li>
+<li><a href="/wiki/core/user-guide/migration-guide/from-2.0-to-2.1.html">From 2.0 to 2.1</a></li>
+</ul></div></div>
</div>
</div>
<div class="clear"></div>
Modified: websites/staging/myfaces/trunk/content/wiki/core/user-guide/working-with-myfaces-core-integration-tests.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/working-with-myfaces-core-integration-tests.html (original)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/working-with-myfaces-core-integration-tests.html Thu Feb 6 01:32:14 2014
@@ -102,30 +102,30 @@ against the running container.</p>
automatically add the integration-tests submodule and thus execute all
integration-tests.</p>
-<p><ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
-mvn clean install -Pintegration-tests
-]
-]></ac:plain-text-body></ac:macro> </p>
+<div class="codehilite"><pre>mvn clean install -Pintegration-tests
+</pre></div>
+
+
<h3>Running a specific integration-test module</h3>
<p>Just go to the desired integration-test module and execute a standard
maven build lifecycle, e.g.</p>
-<p><ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
-cd integration-tests/servlet25-el10-basic-tests/
+<div class="codehilite"><pre><span class="nb">cd </span>integration-tests/servlet25-el10-basic-tests/
mvn clean install
-]
-]></ac:plain-text-body></ac:macro></p>
+</pre></div>
+
+
<h3>Starting an integration-test environment for manual tests</h3>
<p>The cargo maven plugin provides a mojo for running a container with the
given configuration until Ctrl+C is entered in the console (just like the
jetty-maven-plugin).</p>
-<p><ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
-mvn clean package cargo:run
-]
-]></ac:plain-text-body></ac:macro></p>
+<div class="codehilite"><pre>mvn clean package cargo:run
+</pre></div>
+
+
<h3>Creating a new integration-test submodule with a specific
configuration</h3>
Modified: websites/staging/myfaces/trunk/content/wiki/gsoc-and-myfaces.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/gsoc-and-myfaces.html (original)
+++ websites/staging/myfaces/trunk/content/wiki/gsoc-and-myfaces.html Thu Feb 6 01:32:14 2014
@@ -93,7 +93,17 @@ href="http://community.apache.org/gsoc.h
at ASF</a> for more information about how to apply.</p>
<p>Under this section you can see documentation of previous GSOC projects
-done in MyFaces land.</p></div></div>
+done in MyFaces land.</p>
+
+<ul>
+<li><a href="/wiki/gsoc-and-myfaces/gsoc-html5-dnd-prototypes.html">GSoC HTML5 DnD Prototypes</a></li>
+<li><a href="/wiki/gsoc-and-myfaces/gsoc-html5-inputfileupload-prototype.html">GSoC HTML5 inputFileUpload Prototype</a></li>
+<li><a href="/wiki/gsoc-and-myfaces/gsoc-html5-project.html">GSOC HTML5 project</a></li>
+<li><a href="/wiki/gsoc-and-myfaces/gsoc-html5-prototype-inputdatetime-and-validatedaterange.html">GSoC Html5 Prototype inputDateTime and validateDateRange</a></li>
+<li><a href="/wiki/gsoc-and-myfaces/gsoc-html5-prototypes.html">GSoC Html5 Prototypes</a></li>
+<li><a href="/wiki/gsoc-and-myfaces/gsoc-html5-prototypes-inputtext-and-datalist.html">GSoC Html5 Prototypes inputText and datalist</a></li>
+<li><a href="/wiki/gsoc-and-myfaces/gsoc-html5-prototypes-video,-audio,-mediasource-and-mediasources.html">GSoC Html5 Prototypes video, audio, mediaSource and mediaSources</a></li>
+</ul></div></div>
</div>
</div>
<div class="clear"></div>