My JSF Books/Videos My JSF Tutorials OmniFaces/JSF PPTs
JSF 2.3 Tutorial
JSF Caching Tutorial
JSF Navigation Tutorial
JSF Scopes Tutorial
JSF Page Author Beginner's Guide
OmniFaces 2.3 Tutorial Examples
OmniFaces 2.2 Tutorial Examples
JSF Events Tutorial
OmniFaces Callbacks Usages
JSF State Tutorial
JSF and Design Patterns
JSF 2.3 New Features (2.3-m04)
Introduction to OmniFaces
25+ Reasons to use OmniFaces in JSF
OmniFaces Validators
OmniFaces Converters
JSF Design Patterns
Mastering OmniFaces
Reusable and less-verbose JSF code

My JSF Resources ...

Java EE Guardian
Member of JCG Program
Member MVB DZone
Blog curated on ZEEF
OmniFaces is an utility library for JSF, including PrimeFaces, RichFaces, ICEfaces ...

[OmniFaces Utilities] - Find the right JSF OmniFaces 2 utilities methods/functions

Search on blog

Petition by Java EE Guardians

Twitter

duminică, 17 iulie 2016

[OmniFaces utilities (2.4)] Get all request query string or view parameters appended with all child UIParameter components of the given parent component


[OmniFaces utilities] The getParams() returns an unmodifiable map with all request query string or view parameters, appended with all child UIParameter components (<f|o:param>) of the given parent component. Those with disabled=true or an empty name or an empty value are skipped. The <f|o:param> will override any included view or request parameters on the same name.

Method:
Usage:

Let's suppose that we have the following page:

<f:metadata>
 <f:viewParam name="playernameparam" value="#{playersBean.playerName}"/>           
 <f:viewParam name="playersurnameparam" value="#{playersBean.playerSurname}"/>
</f:metadata>
<h:head>
 <title></title>
</h:head>  
<h:body>    
 <h:panelGrid columns="2">
  <h:form id="form">
   <h:commandButton id="submit" value="Get all params" action="#{playersBean.allParams()}">   
    <f:param name="ageParam" value="29"/>
    <o:param name="playParam" value="left"/>
   </h:commandButton>
  </h:form>                 
 </h:panelGrid>
</h:body>

Further, we can use the Components#getParams() utility to programmatically collect the UIParameters  (<f|o:param/>) nested in the above <h:commandButton/> and the view parameters. This can be accomplish in different JSF artifacts; for example, in a bean (obviously, there are several ways to identify the parent UIComponent of the UIParameters that we want to collect - the UIComponent that should be passed to the #getParams() should be obtained in a convenient manner depending on your circumstances; below, we simply used the Components#findComponent() utility):

import org.omnifaces.util.Components;
...
public void allParams() {
              
 UIComponent uc = Components.findComponent("form:submit");
 Map<String, List<String>> paramsMap = Components.getParams(uc, false, true);

 for (Map.Entry<String, List<String>> entry : paramsMap.entrySet()) {
      System.out.println("Param: "+ entry.getKey() + "/" + entry.getValue());
 }
}

Let's suppose that we start the application with an URL like this:

http://myapp/?playernameparam=rafael&playersurnameparam=nadal

After we press the Get all params button the server log will reveal the following output:

Param: playernameparam/[rafael]
Param: playersurnameparam/[nadal]
Param: ageParam/[29]
Param: playParam/[left]

Niciun comentariu :

Trimiteți un comentariu

JSF BOOKS COLLECTION

Postări populare

Follow by Email

Visitors Starting 4 September 2015

Locations of Site Visitors