/** * Copyright (c) 2000-2017 Liferay, Inc. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.liferay.faces.util.context; import java.util.Locale; import java.util.Map; import javax.faces.application.FacesMessage; import javax.faces.component.UIComponent; import javax.faces.component.UIForm; import javax.faces.component.UIInput; import javax.faces.context.ExternalContext; import javax.faces.context.FacesContext; import javax.faces.event.PhaseListener; /** * This class contains a set of static convenience methods that delegate to the corresponding methods on {@link * FacesContextHelper}. * * @author Neil Griffin */ public class FacesContextHelperUtil { /** * Adds the specified key as a message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_ERROR</code>. The message will not be global, rather it will be * associated with the <code>javax.faces.component.UIComponent</code> that is associated with the specified * clientId. */ public static void addComponentErrorMessage(String clientId, String messageId) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addComponentErrorMessage(clientId, messageId); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_ERROR</code> and substitutes the specified argument for the tokens * in the specified key. The message will not be global, rather it will be associated with the <code> * javax.faces.component.UIComponent</code> that is associated with the specified clientId. */ public static void addComponentErrorMessage(String clientId, String messageId, Object argument) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addComponentErrorMessage(clientId, messageId, argument); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_ERROR</code> and substitutes the specified argument(s) for the * tokens in the specified key. The message will not be global, rather it will be associated with the <code> * javax.faces.component.UIComponent</code> that is associated with the specified clientId. */ public static void addComponentErrorMessage(String clientId, String messageId, Object... arguments) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addComponentErrorMessage(clientId, messageId, arguments); } /** * Adds the specified key as a message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_ERROR</code>. The message will not be global, rather it will be * associated with the <code>javax.faces.component.UIComponent</code> that is associated with the specified * clientId. */ public static void addComponentErrorMessage(FacesContext facesContext, String clientId, String messageId) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addComponentErrorMessage(facesContext, clientId, messageId); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_ERROR</code> and substitutes the specified argument for the tokens * in the specified key. The message will not be global, rather it will be associated with the <code> * javax.faces.component.UIComponent</code> that is associated with the specified clientId. */ public static void addComponentErrorMessage(FacesContext facesContext, String clientId, String messageId, Object argument) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addComponentErrorMessage(facesContext, clientId, messageId, argument); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_ERROR</code> and substitutes the specified argument(s) for the * tokens in the specified key. The message will not be global, rather it will be associated with the <code> * javax.faces.component.UIComponent</code> that is associated with the specified clientId. */ public static void addComponentErrorMessage(FacesContext facesContext, String clientId, String messageId, Object... arguments) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addComponentErrorMessage(facesContext, clientId, messageId, arguments); } /** * Adds the specified key as a message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_INFO</code>. The message will not be global, rather it will be * associated with the <code>javax.faces.component.UIComponent</code> that is associated with the specified * clientId. */ public static void addComponentInfoMessage(String clientId, String messageId) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addComponentInfoMessage(clientId, messageId); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_INFO</code> and substitutes the specified argument for the tokens * in the specified key. The message will not be global, rather it will be associated with the <code> * javax.faces.component.UIComponent</code> that is associated with the specified clientId. */ public static void addComponentInfoMessage(String clientId, String messageId, Object argument) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addComponentInfoMessage(clientId, messageId, argument); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_INFO</code> and substitutes the specified argument(s) for the * tokens in the specified key. The message will not be global, rather it will be associated with the <code> * javax.faces.component.UIComponent</code> that is associated with the specified clientId. */ public static void addComponentInfoMessage(String clientId, String messageId, Object... arguments) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addComponentInfoMessage(clientId, messageId, arguments); } /** * Adds the specified key as a message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_INFO</code>. The message will not be global, rather it will be * associated with the <code>javax.faces.component.UIComponent</code> that is associated with the specified * clientId. */ public static void addComponentInfoMessage(FacesContext facesContext, String clientId, String messageId) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addComponentInfoMessage(facesContext, clientId, messageId); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_INFO</code> and substitutes the specified argument for the tokens * in the specified key. The message will not be global, rather it will be associated with the <code> * javax.faces.component.UIComponent</code> that is associated with the specified clientId. */ public static void addComponentInfoMessage(FacesContext facesContext, String clientId, String messageId, Object argument) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addComponentInfoMessage(facesContext, clientId, messageId, argument); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_INFO</code> and substitutes the specified argument(s) for the * tokens in the specified key. The message will not be global, rather it will be associated with the <code> * javax.faces.component.UIComponent</code> that is associated with the specified clientId. */ public static void addComponentInfoMessage(FacesContext facesContext, String clientId, String messageId, Object... arguments) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addComponentInfoMessage(facesContext, clientId, messageId, arguments); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_ERROR</code>. */ public static void addGlobalErrorMessage(String messageId) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalErrorMessage(messageId); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_ERROR</code> and substitutes the specified argument for the tokens * in the specified key. */ public static void addGlobalErrorMessage(String messageId, Object argument) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalErrorMessage(messageId, argument); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_ERROR</code> and substitutes the specified argument(s) for the * tokens in the specified key. */ public static void addGlobalErrorMessage(String messageId, Object... arguments) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalErrorMessage(messageId, arguments); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_ERROR</code>. */ public static void addGlobalErrorMessage(FacesContext facesContext, String messageId) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalErrorMessage(facesContext, messageId); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_ERROR</code> and substitutes the specified argument for the tokens * in the specified key. */ public static void addGlobalErrorMessage(FacesContext facesContext, String messageId, Object argument) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalErrorMessage(facesContext, messageId, argument); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_ERROR</code> and substitutes the specified argument(s) for the * tokens in the specified key. */ public static void addGlobalErrorMessage(FacesContext facesContext, String messageId, Object... arguments) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalErrorMessage(facesContext, messageId, arguments); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_INFO</code>. */ public static void addGlobalInfoMessage(String messageId) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalInfoMessage(messageId); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_INFO</code> and substitutes the specified argument for the tokens * in the specified key. */ public static void addGlobalInfoMessage(String messageId, Object argument) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalInfoMessage(messageId, argument); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_INFO</code> and substitutes the specified argument(s) for the * tokens in the specified key. */ public static void addGlobalInfoMessage(String messageId, Object... arguments) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalInfoMessage(messageId, arguments); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_INFO</code>. */ public static void addGlobalInfoMessage(FacesContext facesContext, String messageId) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalInfoMessage(facesContext, messageId); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_INFO</code> and substitutes the specified argument for the tokens * in the specified key. */ public static void addGlobalInfoMessage(FacesContext facesContext, String messageId, Object argument) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalInfoMessage(facesContext, messageId, argument); } /** * Adds the specified key as a global message to the FacesContext with severity <code> * javax.faces.application.FacesMessage.SEVERITY_INFO</code> and substitutes the specified argument(s) for the * tokens in the specified key. */ public static void addGlobalInfoMessage(FacesContext facesContext, String messageId, Object... arguments) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalInfoMessage(facesContext, messageId, arguments); } /** * Adds a global information message to the current FacesContext with "your-request-processed-successfully" key as * the messageId. */ public static void addGlobalSuccessInfoMessage() { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalSuccessInfoMessage(); } /** * Adds a global information message to the current FacesContext with "your-request-processed-successfully" key as * the messageId. */ public static void addGlobalSuccessInfoMessage(FacesContext facesContext) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalSuccessInfoMessage(facesContext); } /** * Adds a global error message to the current FacesContext with "an-unexpected-error-occurred" key as the messageId. */ public static void addGlobalUnexpectedErrorMessage() { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalUnexpectedErrorMessage(); } /** * Adds a global error message to the current FacesContext with "an-unexpected-error-occurred" key as the messageId. */ public static void addGlobalUnexpectedErrorMessage(FacesContext facesContext) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addGlobalUnexpectedErrorMessage(facesContext); } /** * Adds the specified key as a message associated with the UIComponent that has the specified clientId. Specify * clientId=null for global messages. */ public static void addMessage(String clientId, FacesMessage.Severity severity, String messageId) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addMessage(clientId, severity, messageId); } /** * Adds the specified key as a message associated with the UIComponent that has the specified clientId. Specify * clientId=null for global messages. */ public static void addMessage(String clientId, FacesMessage.Severity severity, String messageId, Object argument) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addMessage(clientId, severity, messageId, argument); } /** * Adds the specified key as a message associated with the UIComponent that has the specified clientId. Specify * clientId=null for global messages. */ public static void addMessage(String clientId, FacesMessage.Severity severity, String messageId, Object... arguments) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addMessage(clientId, severity, messageId, arguments); } /** * Adds the specified key as a message associated with the UIComponent that has the specified clientId. Specify * clientId=null for global messages. */ public static void addMessage(FacesContext facesContext, String clientId, FacesMessage.Severity severity, String messageId) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addMessage(facesContext, clientId, severity, messageId); } /** * Adds the specified key as a message associated with the UIComponent that has the specified clientId. Specify * clientId=null for global messages. */ public static void addMessage(FacesContext facesContext, String clientId, FacesMessage.Severity severity, String messageId, Object argument) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addMessage(facesContext, clientId, severity, messageId, argument); } /** * Adds the specified key as a message associated with the UIComponent that has the specified clientId. Specify * clientId=null for global messages. */ public static void addMessage(FacesContext facesContext, String clientId, FacesMessage.Severity severity, String messageId, Object... arguments) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.addMessage(facesContext, clientId, severity, messageId, arguments); } /** * Returns the locale of the viewRoot of the current JSF FacesContext */ public static Locale getLocale() { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getLocale(); } /** * Returns the locale of the viewRoot of the current JSF FacesContext */ public static Locale getLocale(FacesContext facesContext) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getLocale(facesContext); } /** * Returns the message associated with the specified messageId by delegating to the FacesMessageFactory, according * to the current locale. */ public static String getMessage(String messageId) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getMessage(messageId); } /** * Returns the message associated with the specified messageId by delegating to the FacesMessageFactory, according * to the current locale and arguments that are to be substituted. */ public static String getMessage(String messageId, Object... arguments) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getMessage(messageId, arguments); } /** * Returns the message associated with the specified messageId by delegating to the FacesMessageFactory, according * to the specified locale. */ public static String getMessage(Locale locale, String messageId) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getMessage(locale, messageId); } /** * Returns the message associated with the specified messageId by delegating to the FacesMessageFactory, according * to the current locale. */ public static String getMessage(FacesContext facesContext, String messageId) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getMessage(facesContext, messageId); } /** * Returns the message associated with the specified messageId by delegating to the FacesMessageFactory, according * to the specified locale and arguments that are to be substituted. */ public static String getMessage(Locale locale, String messageId, Object... arguments) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getMessage(locale, messageId, arguments); } /** * Returns the message associated with the specified messageId by delegating to the FacesMessageFactory, according * to the current locale and arguments that are to be substituted. */ public static String getMessage(FacesContext facesContext, String messageId, Object... arguments) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getMessage(facesContext, messageId, arguments); } /** * Returns the message associated with the specified messageId by delegating to the FacesMessageFactory, according * to the specified locale. */ public static String getMessage(FacesContext facesContext, Locale locale, String messageId) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getMessage(facesContext, locale, messageId); } /** * Returns the message associated with the specified messageId by delegating to the FacesMessageFactory, according * to the specified locale and arguments that are to be substituted. */ public static String getMessage(FacesContext facesContext, Locale locale, String messageId, Object... arguments) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getMessage(facesContext, locale, messageId, arguments); } /** * Delegates to the underlying {@link ExternalContext#encodeNamespace(String)} method in order to get the * application namespace. */ public static String getNamespace() { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getNamespace(); } /** * Delegates to the underlying {@link ExternalContext#encodeNamespace(String)} method in order to get the * application namespace. */ public static String getNamespace(FacesContext facesContext) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getNamespace(facesContext); } /** * Returns the parent form of the given component or <code>null</code> if no parent form is found. * * @param uiComponent The component whose parent is to be found. */ public static UIForm getParentForm(UIComponent uiComponent) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getParentForm(uiComponent); } /** * Returns the value of the request attribute associated with the specified name. */ public static Object getRequestAttribute(String name) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestAttribute(name); } /** * Returns the value of the request attribute associated with the specified name. */ public static Object getRequestAttribute(FacesContext facesContext, String name) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestAttribute(facesContext, name); } /** * Returns The request context path. {@link FacesContext#getExternalContext(()} {@link * ExternalContext#getRequestContextPath()} */ public static String getRequestContextPath() { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestContextPath(); } /** * Returns The request context path. {@link FacesContext#getExternalContext(()} {@link * ExternalContext#getRequestContextPath()} */ public static String getRequestContextPath(FacesContext facesContext) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestContextPath(facesContext); } /** * Retrieves the specified parameter passed as part of the request */ public static String getRequestParameter(String name) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestParameter(name); } /** * Retrieves the specified parameter passed as part of the request */ public static String getRequestParameter(FacesContext facesContext, String name) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestParameter(facesContext, name); } /** * Retrieves the specified parameter passed as part of the request as a boolean. The values "yes", "true", "y", and * "1" are accetable values for "TRUE". */ public static boolean getRequestParameterAsBool(String name, boolean defaultValue) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestParameterAsBool(name, defaultValue); } /** * Retrieves the specified parameter passed as part of the request as a boolean. The values "yes", "true", "y", and * "1" are accetable values for "TRUE". */ public static boolean getRequestParameterAsBool(FacesContext facesContext, String name, boolean defaultValue) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestParameterAsBool(facesContext, name, defaultValue); } /** * Retrieves the specified parameter passed as part of the request as an integer. */ public static int getRequestParameterAsInt(String name, int defaultValue) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestParameterAsInt(name, defaultValue); } /** * Retrieves the specified parameter passed as part of the request as an integer. */ public static int getRequestParameterAsInt(FacesContext facesContext, String name, int defaultValue) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestParameterAsInt(facesContext, name, defaultValue); } /** * Retrieves the specified parameter passed as part of the request as an integer. */ public static long getRequestParameterAsLong(String name, long defaultValue) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestParameterAsLong(name, defaultValue); } /** * Retrieves the specified parameter passed as part of the request as an integer. */ public static long getRequestParameterAsLong(FacesContext facesContext, String name, long defaultValue) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestParameterAsLong(facesContext, name, defaultValue); } /** * Retrieves the specified parameter from the ExternalContext's request parameter map. */ public static String getRequestParameterFromMap(String name) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestParameterFromMap(name); } /** * Retrieves the specified parameter from the ExternalContext's request parameter map. */ public static String getRequestParameterFromMap(FacesContext facesContext, String name) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestParameterFromMap(facesContext, name); } /** * Returns the map of request parameters from the ExternalContext. * * @see {@link ExternalContext#getRequestParameterMap()}. */ public static Map<String, String> getRequestParameterMap() { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestParameterMap(); } /** * Returns the map of request parameters from the ExternalContext. * * @see {@link ExternalContext#getRequestParameterMap()}. */ public static Map<String, String> getRequestParameterMap(FacesContext facesContext) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestParameterMap(facesContext); } /** * Retrieves the value of the original "javax.servlet.forward.query_string" request attribute. */ public static String getRequestQueryString() { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestQueryString(); } /** * Retrieves the value of the original "javax.servlet.forward.query_string" request attribute. */ public static String getRequestQueryString(FacesContext facesContext) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestQueryString(facesContext); } /** * Retrieves the value of the specified parameter name from the original "javax.servlet.forward.query_string" * request attribute. */ public static String getRequestQueryStringParameter(String name) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestQueryStringParameter(name); } /** * Retrieves the value of the specified parameter name from the original "javax.servlet.forward.query_string" * request attribute. */ public static String getRequestQueryStringParameter(FacesContext facesContext, String name) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getRequestQueryStringParameter(facesContext, name); } /** * Returns the session object associated with the current FacesContext. * * @param create Flag indicating whether or not a session should be created if it doesn't yet exist. */ public static Object getSession(boolean create) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getSession(create); } /** * Returns the session object associated with the current FacesContext. * * @param create Flag indicating whether or not a session should be created if it doesn't yet exist. */ public static Object getSession(FacesContext facesContext, boolean create) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getSession(facesContext, create); } /** * Returns the value of the session attribute associated with the specified name. */ public static Object getSessionAttribute(String name) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getSessionAttribute(name); } /** * Returns the value of the session attribute associated with the specified name. */ public static Object getSessionAttribute(FacesContext facesContext, String name) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.getSessionAttribute(facesContext, name); } /** * Traverses the component tree starting at the specified UIComponent parent and returns the first UIComponent child * that contains the specified partialClientId. */ public static UIComponent matchComponentInHierarchy(UIComponent parent, String partialClientId) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.matchComponentInHierarchy(parent, partialClientId); } /** * Traverses the component tree starting at the specified UIComponent parent and returns the first UIComponent child * that contains the specified partialClientId. */ public static UIComponent matchComponentInHierarchy(FacesContext facesContext, UIComponent parent, String partialClientId) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.matchComponentInHierarchy(facesContext, parent, partialClientId); } /** * Traverses the component tree associated with the UIViewRoot of this FacesContext and returns the first * UIComponent child that contains the specified partialClientId. */ public static UIComponent matchComponentInViewRoot(String partialClientId) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.matchComponentInViewRoot(partialClientId); } /** * Traverses the component tree associated with the UIViewRoot of this FacesContext and returns the first * UIComponent child that contains the specified partialClientId. */ public static UIComponent matchComponentInViewRoot(FacesContext facesContext, String partialClientId) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.matchComponentInViewRoot(facesContext, partialClientId); } /** * Sets the current JSF navigation to the specified outcome. * * @param fromAction The "from action" as specified in a JSF navigation rule. Can be null to if no action is * specified in the rule. * @param outcome The "from outcome" as specified in a JSF navigation rule */ public static void navigate(String fromAction, String outcome) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.navigate(fromAction, outcome); } /** * Sets the current JSF navigation to the specified outcome. * * @param fromAction The "from action" as specified in a JSF navigation rule. Can be null to if no action is * specified in the rule. * @param outcome The "from outcome" as specified in a JSF navigation rule */ public static void navigate(FacesContext facesContext, String fromAction, String outcome) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.navigate(facesContext, fromAction, outcome); } /** * Sets the current JSF navigation to the specified outcome. * * @param outcome The "from outcome" as specified in a JSF navigation rule */ public static void navigateTo(String outcome) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.navigateTo(outcome); } /** * Sets the current JSF navigation to the specified outcome. * * @param outcome The "from outcome" as specified in a JSF navigation rule */ public static void navigateTo(FacesContext facesContext, String outcome) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.navigateTo(facesContext, outcome); } /** * Delete the whole component tree. This causes the tree to be rebuilt the next time it is accessed. This addresses * the problem that immediate actions cannot change the values of input components. To clear these values, use this * method. */ public static void recreateComponentTree() { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.recreateComponentTree(); } /** * Delete the whole component tree. This causes the tree to be rebuilt the next time it is accessed. This addresses * the problem that immediate actions cannot change the values of input components. To clear these values, use this * method. */ public static void recreateComponentTree(FacesContext facesContext) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.recreateComponentTree(facesContext); } /** * Register a {@link PhaseListener} programatically (instead of in the faces-config.xml). Such a PhaseListener can * therefore be controlled by spring and use dependency injection, which is not possible otherwise. */ public static void registerPhaseListener(PhaseListener phaseListener) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.registerPhaseListener(phaseListener); } /** * clear component tree since input fields will not be refreshed. See <a * href="http://wiki.apache.org/myfaces/ClearInputComponents">ClearInputComponents</a> for more information. * * @param clientId all children of the component with this id are cleared. */ public static void removeChildrenFromComponentTree(String clientId) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.removeChildrenFromComponentTree(clientId); } /** * clear component tree since input fields will not be refreshed. See <a * href="http://wiki.apache.org/myfaces/ClearInputComponents">ClearInputComponents</a> for more information. * * @param clientId all children of the component with this id are cleared. */ public static void removeChildrenFromComponentTree(FacesContext facesContext, String clientId) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.removeChildrenFromComponentTree(facesContext, clientId); } /** * Removes all FacesMessage instances from this FacesContext that are associated with the specified clientId. */ public static void removeMessages(String clientId) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.removeMessages(clientId); } /** * Removes all FacesMessage instances from this FacesContext that are associated with the specified clientId. */ public static void removeMessages(FacesContext facesContext, String clientId) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.removeMessages(facesContext, clientId); } /** * Removes all FacesMessage instances from this FacesContext that are associated with components whose immediate * attribute is true.The typical use case for this method is when seemingly bogus messages are added to the * FacesContext on components whose immediate attribute is true. This happens because {@link UIInput#processDecodes} * calls validate() if the the immediate attribute is true. */ public static void removeMessagesForImmediateComponents() { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.removeMessagesForImmediateComponents(); } /** * Removes all FacesMessage instances from this FacesContext that are associated with components whose immediate * attribute is true.The typical use case for this method is when seemingly bogus messages are added to the * FacesContext on components whose immediate attribute is true. This happens because {@link UIInput#processDecodes} * calls validate() if the the immediate attribute is true. */ public static void removeMessagesForImmediateComponents(UIComponent uiComponent) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.removeMessagesForImmediateComponents(uiComponent); } /** * Removes all FacesMessage instances from this FacesContext that are associated with components whose immediate * attribute is true.The typical use case for this method is when seemingly bogus messages are added to the * FacesContext on components whose immediate attribute is true. This happens because {@link UIInput#processDecodes} * calls validate() if the the immediate attribute is true. */ public static void removeMessagesForImmediateComponents(FacesContext facesContext) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.removeMessagesForImmediateComponents(facesContext); } /** * Removes all FacesMessage instances from this FacesContext that are associated with components whose immediate * attribute is true.The typical use case for this method is when seemingly bogus messages are added to the * FacesContext on components whose immediate attribute is true. This happens because {@link UIInput#processDecodes} * calls validate() if the the immediate attribute is true. */ public static void removeMessagesForImmediateComponents(FacesContext facesContext, UIComponent uiComponent) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.removeMessagesForImmediateComponents(facesContext, uiComponent); } /** * Delete the component subtree of a given component. This causes the subtree to be rebuilt the next time it is * accessed. This addresses the problem that immediate actions cannot change the values of input components. To * clear these values, use this method. */ public static void removeParentFormFromComponentTree(UIComponent uiComponent) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.removeParentFormFromComponentTree(uiComponent); } /** * Causes the current view's component tree to be discarded and re-rendered. * * @see {@link FacesContextHelper#resetView(boolean)} */ public static void resetView() { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.resetView(); } /** * Causes the current view's component tree to be discarded and (optionally) re-rendered. This is useful whenever an * action causes navigation back to the current view, but the data in the backing bean(s) has changed substantially. * The view is rendered as if the user is visiting for the first time. * * @param renderResponse causes the response to be rendered immediately if true. * * @see <a href="http://wiki.apache.org/myfaces/ClearInputComponents">ClearInputComponents</a> */ public static void resetView(boolean renderResponse) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.resetView(renderResponse); } /** * Causes the current view's component tree to be discarded and re-rendered. * * @see {@link FacesContextHelper#resetView(boolean)} */ public static void resetView(FacesContext facesContext) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.resetView(facesContext); } /** * Causes the current view's component tree to be discarded and (optionally) re-rendered. This is useful whenever an * action causes navigation back to the current view, but the data in the backing bean(s) has changed substantially. * The view is rendered as if the user is visiting for the first time. * * @param renderResponse causes the response to be rendered immediately if true. * * @see <a href="http://wiki.apache.org/myfaces/ClearInputComponents">ClearInputComponents</a> */ public static void resetView(FacesContext facesContext, boolean renderResponse) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.resetView(facesContext, renderResponse); } /** * Returns the object associated with the specified EL expression. */ public static Object resolveExpression(String elExpression) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.resolveExpression(elExpression); } /** * Returns the object associated with the specified EL expression. */ public static Object resolveExpression(FacesContext facesContext, String elExpression) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelper.resolveExpression(facesContext, elExpression); } /** * Sets the value of the a request attribute using the specified name and value. */ public static void setRequestAttribute(String name, Object value) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.setRequestAttribute(name, value); } /** * Sets the value of the a request attribute using the specified name and value. */ public static void setRequestAttribute(FacesContext facesContext, String name, Object value) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.setRequestAttribute(facesContext, name, value); } /** * Sets the value of the a session attribute using the specified name and value. */ public static void setSessionAttribute(String name, Object value) { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.setSessionAttribute(name, value); } /** * Sets the value of the a session attribute using the specified name and value. */ public static void setSessionAttribute(FacesContext facesContext, String name, Object value) { FacesContextHelper facesContextHelper = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); facesContextHelper.setSessionAttribute(facesContext, name, value); } /** * Gets the underlying/wrapped FacesContext ThreadLocal singleton instance. */ public FacesContext getFacesContext() { FacesContext facesContext = FacesContext.getCurrentInstance(); FacesContextHelper facesContextHelperInstance = FacesContextHelperFactory.getFacesContextHelperInstance( facesContext.getExternalContext()); return facesContextHelperInstance.getFacesContext(); } }