You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ta...@apache.org on 2018/12/05 16:35:23 UTC
[myfaces] branch master updated: MYFACES-4272 [perf] avoid FormInfo
instances
This is an automated email from the ASF dual-hosted git repository.
tandraschko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces.git
The following commit(s) were added to refs/heads/master by this push:
new 8ccbd3f MYFACES-4272 [perf] avoid FormInfo instances
8ccbd3f is described below
commit 8ccbd3ff83fa5e0b3c80625f5a9c767441b730d7
Author: Thomas Andraschko <ta...@apache.org>
AuthorDate: Wed Dec 5 17:35:19 2018 +0100
MYFACES-4272 [perf] avoid FormInfo instances
---
.../apache/myfaces/renderkit/RendererUtils.java | 12 +----
.../renderkit/html/HtmlCommandScriptRenderer.java | 7 ++-
.../html/base/HtmlButtonRendererBase.java | 55 ++++++++-----------
.../html/base/HtmlInputFileRendererBase.java | 10 ++--
.../renderkit/html/base/HtmlLinkRendererBase.java | 61 +++++++++-------------
.../renderkit/html/base/HtmlRadioRendererBase.java | 9 ++--
.../renderkit/html/base/HtmlRendererUtils.java | 17 ++----
.../myfaces/renderkit/html/util/FormInfo.java | 43 ---------------
8 files changed, 64 insertions(+), 150 deletions(-)
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/RendererUtils.java b/impl/src/main/java/org/apache/myfaces/renderkit/RendererUtils.java
index 2823aea..d30b39c 100755
--- a/impl/src/main/java/org/apache/myfaces/renderkit/RendererUtils.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/RendererUtils.java
@@ -51,7 +51,6 @@ import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.model.SelectItem;
-import org.apache.myfaces.renderkit.html.util.FormInfo;
import org.apache.myfaces.util.ComponentUtils;
import org.apache.myfaces.util.HashMapUtils;
import org.apache.myfaces.renderkit.html.util.SelectItemsIterator;
@@ -875,7 +874,7 @@ public final class RendererUtils
* @param facesContext
* @return FormInfo Information about the form - the form itself and its name.
*/
- public static FormInfo findNestingForm(UIComponent uiComponent,
+ public static UIComponent findNestingForm(UIComponent uiComponent,
FacesContext facesContext)
{
UIComponent parent = uiComponent.getParent();
@@ -884,14 +883,7 @@ public final class RendererUtils
parent = parent.getParent();
}
- if (parent != null)
- {
- //link is nested inside a form
- String formName = parent.getClientId(facesContext);
- return new FormInfo(parent, formName);
- }
-
- return null;
+ return parent;
}
public static boolean getBooleanValue(String attribute, Object value,
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlCommandScriptRenderer.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlCommandScriptRenderer.java
index d44ec06..abb1ef1 100644
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlCommandScriptRenderer.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlCommandScriptRenderer.java
@@ -45,7 +45,6 @@ import org.apache.myfaces.renderkit.html.util.HTML;
import org.apache.myfaces.renderkit.html.base.HtmlRenderer;
import org.apache.myfaces.renderkit.html.base.HtmlRendererUtils;
import org.apache.myfaces.renderkit.html.util.JavascriptContext;
-import org.apache.myfaces.renderkit.html.util.FormInfo;
import org.apache.myfaces.renderkit.html.util.JavascriptUtils;
import org.apache.myfaces.renderkit.html.util.ResourceUtils;
import org.apache.myfaces.util.SharedStringBuilder;
@@ -180,12 +179,12 @@ public class HtmlCommandScriptRenderer extends HtmlRenderer
if (component.getClientId(facesContext).equals(clientId))
{
boolean disabled = HtmlRendererUtils.isDisabled(component);
- FormInfo formInfo = RendererUtils.findNestingForm(component, facesContext);
+ UIComponent form = RendererUtils.findNestingForm(component, facesContext);
boolean activateActionEvent = false;
- if (formInfo != null && !disabled)
+ if (form != null && !disabled)
{
String reqValue = (String) facesContext.getExternalContext().getRequestParameterMap().get(
- HtmlRendererUtils.getHiddenCommandLinkFieldName(formInfo, facesContext));
+ HtmlRendererUtils.getHiddenCommandLinkFieldName(form, facesContext));
activateActionEvent = reqValue != null && reqValue.equals(clientId)
|| HtmlRendererUtils.isPartialOrBehaviorSubmit(facesContext, clientId);
}
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlButtonRendererBase.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlButtonRendererBase.java
index 1b5839b..37311a2 100644
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlButtonRendererBase.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlButtonRendererBase.java
@@ -41,7 +41,6 @@ import javax.faces.event.ActionEvent;
import org.apache.myfaces.renderkit.ClientBehaviorEvents;
import org.apache.myfaces.renderkit.html.util.JSFAttr;
import org.apache.myfaces.renderkit.RendererUtils;
-import org.apache.myfaces.renderkit.html.util.FormInfo;
import org.apache.myfaces.renderkit.html.util.JavascriptUtils;
import org.apache.myfaces.renderkit.html.util.ResourceUtils;
import org.apache.myfaces.renderkit.html.util.HTML;
@@ -88,13 +87,13 @@ public class HtmlButtonRendererBase
{
String clientId = uiComponent.getClientId(facesContext);
Map paramMap = facesContext.getExternalContext().getRequestParameterMap();
- FormInfo formInfo = RendererUtils.findNestingForm(uiComponent, facesContext);
+ UIComponent form = RendererUtils.findNestingForm(uiComponent, facesContext);
String hiddenLink = null;
- if (formInfo != null)
+ if (form != null)
{
hiddenLink = (String) facesContext.getExternalContext().getRequestParameterMap().get(
- HtmlRendererUtils.getHiddenCommandLinkFieldName(formInfo, facesContext));
+ HtmlRendererUtils.getHiddenCommandLinkFieldName(form, facesContext));
}
return paramMap.containsKey(clientId) || paramMap.containsKey(clientId + IMAGE_BUTTON_SUFFIX_X)
|| paramMap.containsKey(clientId + IMAGE_BUTTON_SUFFIX_Y)
@@ -113,7 +112,7 @@ public class HtmlButtonRendererBase
ResponseWriter writer = facesContext.getResponseWriter();
// commandButton does not need to be nested in a form since JSF 2.0
- FormInfo formInfo = findNestingForm(uiComponent, facesContext);
+ UIComponent form = RendererUtils.findNestingForm(uiComponent, facesContext);
boolean reset = isReset(uiComponent);
boolean button = isButton(uiComponent);
@@ -180,7 +179,7 @@ public class HtmlButtonRendererBase
if (!reset && !button)
{
String onClick = buildBehaviorizedOnClick(
- uiComponent, behaviors, facesContext, writer, formInfo, validParams);
+ uiComponent, behaviors, facesContext, writer, form, validParams);
if (onClick.length() != 0)
{
writer.writeAttribute(HTML.ONCLICK_ATTR, onClick, null);
@@ -277,11 +276,11 @@ public class HtmlButtonRendererBase
writer.endElement(HTML.INPUT_ELEM);
- FormInfo formInfo = findNestingForm(uiComponent, facesContext);
- if (formInfo != null)
+ UIComponent form = RendererUtils.findNestingForm(uiComponent, facesContext);
+ if (form != null)
{
HtmlFormRendererBase.renderScrollHiddenInputIfNecessary(
- formInfo.getForm(), facesContext, writer);
+ form, facesContext, writer);
}
// render the UIParameter children of the commandButton (since 2.0)
@@ -299,7 +298,7 @@ public class HtmlButtonRendererBase
protected String buildBehaviorizedOnClick(UIComponent uiComponent, Map<String, List<ClientBehavior>> behaviors,
FacesContext facesContext, ResponseWriter writer,
- FormInfo nestedFormInfo, List<UIParameter> validParams)
+ UIComponent form, List<UIParameter> validParams)
throws IOException
{
//we can omit autoscroll here for now maybe we should check if it is an ajax
@@ -316,7 +315,7 @@ public class HtmlButtonRendererBase
StringBuilder rendererOnClick = new StringBuilder();
- if (nestedFormInfo != null)
+ if (form != null)
{
// There is no clean way to detect if a "submit" behavior has been added to the component,
// so to keep things simple, if the button is submit type, it is responsibility of the
@@ -331,11 +330,11 @@ public class HtmlButtonRendererBase
//}
//else
//{
- String formName = nestedFormInfo.getFormName();
if (JavascriptUtils.isRenderClearJavascriptOnButton(facesContext.getExternalContext()))
{
//call the script to clear the form (clearFormHiddenParams_<formName>) method
- HtmlRendererUtils.appendClearHiddenCommandFormParamsFunctionCall(rendererOnClick, formName);
+ HtmlRendererUtils.appendClearHiddenCommandFormParamsFunctionCall(rendererOnClick,
+ form.getClientId(facesContext));
}
//}
}
@@ -351,20 +350,17 @@ public class HtmlButtonRendererBase
}
protected String buildServerOnclick(FacesContext facesContext, UIComponent component,
- String clientId, FormInfo formInfo, List<UIParameter> validParams) throws IOException
+ String clientId, UIComponent form, List<UIParameter> validParams) throws IOException
{
- UIComponent nestingForm = formInfo.getForm();
- String formName = formInfo.getFormName();
-
StringBuilder onClick = new StringBuilder();
- StringBuilder params = addChildParameters(facesContext, nestingForm, validParams);
+ StringBuilder params = addChildParameters(facesContext, form, validParams);
String target = getTarget(component);
onClick.append("return ").
append(HtmlRendererUtils.SUBMIT_FORM_FN_NAME_JSF2).append("('").
- append(formName).append("','").
+ append(form.getClientId(facesContext)).append("','").
append(component.getClientId(facesContext)).append('\'');
if (params.length() > 2 || target != null)
@@ -477,22 +473,19 @@ public class HtmlButtonRendererBase
onClick.append("var oamSF = function(){");
}
- FormInfo nestedFormInfo = findNestingForm(uiComponent, facesContext);
+ UIComponent form = RendererUtils.findNestingForm(uiComponent, facesContext);
- if (nestedFormInfo != null)
+ if (form != null)
{
- String formName = nestedFormInfo.getFormName();
-
if (validParams != null && !validParams.isEmpty() )
{
- StringBuilder params = addChildParameters(
- facesContext, nestedFormInfo.getForm(), validParams);
+ StringBuilder params = addChildParameters(facesContext, form, validParams);
String target = getTarget(uiComponent);
onClick.append("return ").
append(HtmlRendererUtils.SUBMIT_FORM_FN_NAME_JSF2).append("('").
- append(formName).append("','").
+ append(form.getClientId(facesContext)).append("','").
append(uiComponent.getClientId(facesContext)).append('\'');
if (params.length() > 2 || target != null)
@@ -509,7 +502,8 @@ public class HtmlButtonRendererBase
if (JavascriptUtils.isRenderClearJavascriptOnButton(facesContext.getExternalContext()))
{
//call the script to clear the form (clearFormHiddenParams_<formName>) method
- HtmlRendererUtils.appendClearHiddenCommandFormParamsFunctionCall(onClick, formName);
+ HtmlRendererUtils.appendClearHiddenCommandFormParamsFunctionCall(onClick,
+ form.getClientId(facesContext));
}
}
}
@@ -524,13 +518,6 @@ public class HtmlButtonRendererBase
return onClick;
}
- /**
- * find nesting form
- */
- protected FormInfo findNestingForm(UIComponent uiComponent, FacesContext facesContext)
- {
- return RendererUtils.findNestingForm(uiComponent, facesContext);
- }
protected boolean isDisabled(FacesContext facesContext, UIComponent uiComponent)
{
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlInputFileRendererBase.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlInputFileRendererBase.java
index c05d3ab..d8155f4 100644
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlInputFileRendererBase.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlInputFileRendererBase.java
@@ -44,7 +44,6 @@ import javax.faces.component.html.HtmlForm;
import javax.faces.component.html.HtmlInputText;
import org.apache.myfaces.renderkit.RendererUtils;
-import org.apache.myfaces.renderkit.html.util.FormInfo;
import org.apache.myfaces.renderkit.html.util.HttpPartWrapper;
import org.apache.myfaces.renderkit.html.util.HTML;
import org.apache.myfaces.renderkit.html.util.JSFAttr;
@@ -97,12 +96,11 @@ public class HtmlInputFileRendererBase extends HtmlRenderer
(facesContext.getPartialViewContext().isPartialRequest() ||
facesContext.getPartialViewContext().isAjaxRequest()))
{
- FormInfo formInfo = RendererUtils.findNestingForm(component, facesContext);
- if (formInfo != null && formInfo.getForm() instanceof HtmlForm)
+ UIComponent form = RendererUtils.findNestingForm(component, facesContext);
+ if (form != null && form instanceof HtmlForm)
{
- HtmlForm form = (HtmlForm) formInfo.getForm();
- String content = form.getEnctype();
- if (content==null || !content.contains("multipart/form-data"))
+ String content = ((HtmlForm) form).getEnctype();
+ if (content == null || !content.contains("multipart/form-data"))
{
FacesMessage message = new FacesMessage("file upload requires a form with"+
" enctype equal to multipart/form-data");
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlLinkRendererBase.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlLinkRendererBase.java
index 7b24af3..e5e53e4 100644
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlLinkRendererBase.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlLinkRendererBase.java
@@ -48,7 +48,6 @@ import org.apache.myfaces.config.MyfacesConfig;
import org.apache.myfaces.renderkit.ClientBehaviorEvents;
import org.apache.myfaces.renderkit.html.util.JSFAttr;
import org.apache.myfaces.renderkit.RendererUtils;
-import org.apache.myfaces.renderkit.html.util.FormInfo;
import org.apache.myfaces.renderkit.html.util.ResourceUtils;
import org.apache.myfaces.renderkit.html.util.HTML;
@@ -59,6 +58,7 @@ public abstract class HtmlLinkRendererBase
public static final String END_LINK_OUTCOME_AS_SPAN =
"oam.shared.HtmlLinkRendererBase.END_LINK_OUTCOME_AS_SPAN";
+ @Override
public boolean getRendersChildren()
{
// We must be able to render the children without a surrounding anchor
@@ -66,6 +66,7 @@ public abstract class HtmlLinkRendererBase
return true;
}
+ @Override
public void decode(FacesContext facesContext, UIComponent component)
{
super.decode(facesContext, component); //check for NP
@@ -73,14 +74,14 @@ public abstract class HtmlLinkRendererBase
if (component instanceof UICommand)
{
String clientId = component.getClientId(facesContext);
- FormInfo formInfo = findNestingForm(component, facesContext);
+ UIComponent form = RendererUtils.findNestingForm(component, facesContext);
boolean disabled = HtmlRendererUtils.isDisabled(component);
// MYFACES-3960 Decode, decode client behavior and queue action event at the end
boolean activateActionEvent = false;
- if (formInfo != null && !disabled)
+ if (form != null && !disabled)
{
String reqValue = (String) facesContext.getExternalContext().getRequestParameterMap().get(
- HtmlRendererUtils.getHiddenCommandLinkFieldName(formInfo, facesContext));
+ HtmlRendererUtils.getHiddenCommandLinkFieldName(form, facesContext));
activateActionEvent = reqValue != null && reqValue.equals(clientId)
|| HtmlRendererUtils.isPartialOrBehaviorSubmit(facesContext, clientId);
}
@@ -108,7 +109,7 @@ public abstract class HtmlLinkRendererBase
}
}
-
+ @Override
public void encodeBegin(FacesContext facesContext, UIComponent component) throws IOException
{
super.encodeBegin(facesContext, component); //check for NP
@@ -174,11 +175,13 @@ public abstract class HtmlLinkRendererBase
}
+ @Override
public void encodeChildren(FacesContext facesContext, UIComponent component) throws IOException
{
RendererUtils.renderChildren(facesContext, component);
}
+ @Override
public void encodeEnd(FacesContext facesContext, UIComponent component) throws IOException
{
super.encodeEnd(facesContext, component); //check for NP
@@ -187,12 +190,12 @@ public abstract class HtmlLinkRendererBase
{
renderCommandLinkEnd(facesContext, component);
- FormInfo formInfo = findNestingForm(component, facesContext);
+ UIComponent form = RendererUtils.findNestingForm(component, facesContext);
- if (formInfo != null)
+ if (form != null)
{
HtmlFormRendererBase.renderScrollHiddenInputIfNecessary(
- formInfo.getForm(), facesContext, facesContext.getResponseWriter());
+ form, facesContext, facesContext.getResponseWriter());
}
}
else if (component instanceof UIOutcomeTarget)
@@ -220,11 +223,11 @@ public abstract class HtmlLinkRendererBase
Map<String, List<ClientBehavior>> behaviors = null;
// h:commandLink can be rendered outside a form, but with warning (jsf 2.0 TCK)
- FormInfo formInfo = findNestingForm(component, facesContext);
+ UIComponent form = RendererUtils.findNestingForm(component, facesContext);
boolean disabled = HtmlRendererUtils.isDisabled(component);
- if (disabled || formInfo == null)
+ if (disabled || form == null)
{
writer.startElement(HTML.SPAN_ELEM, component);
if (component instanceof ClientBehaviorHolder)
@@ -334,7 +337,7 @@ public abstract class HtmlLinkRendererBase
{
behaviors = ((ClientBehaviorHolder) component).getClientBehaviors();
renderBehaviorizedJavaScriptAnchorStart(
- facesContext, writer, component, clientId, behaviors, formInfo);
+ facesContext, writer, component, clientId, behaviors, form);
if (!behaviors.isEmpty())
{
HtmlRendererUtils.writeIdAndName(writer, component, facesContext);
@@ -396,7 +399,7 @@ public abstract class HtmlLinkRendererBase
}
else
{
- renderJavaScriptAnchorStart(facesContext, writer, component, clientId, formInfo);
+ renderJavaScriptAnchorStart(facesContext, writer, component, clientId, form);
HtmlRendererUtils.writeIdIfNecessary(writer, component, facesContext);
if (isCommonPropertiesOptimizationEnabled(facesContext))
{
@@ -426,7 +429,7 @@ public abstract class HtmlLinkRendererBase
}
// render warning message for a h:commandLink with no nesting form
- if (formInfo == null)
+ if (form == null)
{
writer.writeText(": This link is deactivated, because it is not embedded in a JSF form.", null);
}
@@ -436,12 +439,9 @@ public abstract class HtmlLinkRendererBase
ResponseWriter writer,
UIComponent component,
String clientId,
- FormInfo formInfo)
+ UIComponent form)
throws IOException
{
- UIComponent nestingForm = formInfo.getForm();
- String formName = formInfo.getFormName();
-
StringBuilder onClick = new StringBuilder();
String commandOnclick;
@@ -462,13 +462,13 @@ public abstract class HtmlLinkRendererBase
onClick.append("var oamSF = function(){");
}
- StringBuilder params = addChildParameters(facesContext, component, nestingForm);
+ StringBuilder params = addChildParameters(facesContext, component, form);
String target = getTarget(component);
onClick.append("return ").
append(HtmlRendererUtils.SUBMIT_FORM_FN_NAME_JSF2).append("('").
- append(formName).append("','").
+ append(form.getClientId(facesContext)).append("','").
append(clientId).append('\'');
if (params.length() > 2 || target != null)
@@ -498,8 +498,7 @@ public abstract class HtmlLinkRendererBase
UIComponent component,
String clientId,
Map<String, List<ClientBehavior>> behaviors,
- FormInfo formInfo)
- throws IOException
+ UIComponent formInfo) throws IOException
{
String commandOnclick;
if (component instanceof HtmlCommandLink)
@@ -582,20 +581,17 @@ public abstract class HtmlLinkRendererBase
}
protected String buildServerOnclick(FacesContext facesContext, UIComponent component,
- String clientId, FormInfo formInfo) throws IOException
+ String clientId, UIComponent form) throws IOException
{
- UIComponent nestingForm = formInfo.getForm();
- String formName = formInfo.getFormName();
-
StringBuilder onClick = new StringBuilder();
- StringBuilder params = addChildParameters(facesContext, component, nestingForm);
+ StringBuilder params = addChildParameters(facesContext, component, form);
String target = getTarget(component);
onClick.append("return ").
append(HtmlRendererUtils.SUBMIT_FORM_FN_NAME_JSF2).append("('").
- append(formName).append("','").
+ append(form.getClientId(facesContext)).append("','").
append(clientId).append('\'');
if (params.length() > 2 || target != null)
@@ -701,13 +697,6 @@ public abstract class HtmlLinkRendererBase
return params;
}
- /**
- * find nesting form<p>
- */
- protected FormInfo findNestingForm(UIComponent uiComponent, FacesContext facesContext)
- {
- return RendererUtils.findNestingForm(uiComponent, facesContext);
- }
private void addChildParametersToHref(FacesContext facesContext,
UIComponent linkComponent,
@@ -1168,10 +1157,10 @@ public abstract class HtmlLinkRendererBase
protected void renderCommandLinkEnd(FacesContext facesContext, UIComponent component)
throws IOException
{
- FormInfo formInfo = findNestingForm(component, facesContext);
+ UIComponent form = RendererUtils.findNestingForm(component, facesContext);
ResponseWriter writer = facesContext.getResponseWriter();
- if (HtmlRendererUtils.isDisabled(component) || formInfo == null)
+ if (HtmlRendererUtils.isDisabled(component) || form == null)
{
writer.endElement(HTML.SPAN_ELEM);
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlRadioRendererBase.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlRadioRendererBase.java
index 474d817..ccd786d 100644
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlRadioRendererBase.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlRadioRendererBase.java
@@ -50,7 +50,6 @@ import javax.faces.model.SelectItemGroup;
import org.apache.myfaces.renderkit.html.util.JSFAttr;
import org.apache.myfaces.renderkit.RendererUtils;
-import org.apache.myfaces.renderkit.html.util.FormInfo;
import org.apache.myfaces.renderkit.html.util.ResourceUtils;
import org.apache.myfaces.renderkit.html.util.HTML;
import org.apache.myfaces.util.ComponentUtils;
@@ -143,9 +142,9 @@ public class HtmlRadioRendererBase
else
{
// Deferred case: find real component with attached selectItems
- FormInfo formInfo = RendererUtils.findNestingForm(uiComponent, facesContext);
+ UIComponent form = RendererUtils.findNestingForm(uiComponent, facesContext);
GetSelectItemListCallback callback = new GetSelectItemListCallback(selectOne, group);
- formInfo.getForm().visitTree(
+ form.visitTree(
VisitContext.createVisitContext(facesContext, null, FIND_SELECT_LIST_HINTS),
callback);
renderGroupOrItemRadio(facesContext, selectOne, callback.getSelectItem(),
@@ -410,8 +409,8 @@ public class HtmlRadioRendererBase
String group = uiComponent instanceof HtmlSelectOneRadio ? ((HtmlSelectOneRadio) uiComponent).getGroup() : null;
if (group != null && !group.isEmpty())
{
- FormInfo formInfo = RendererUtils.findNestingForm(uiComponent, facesContext);
- writer.writeAttribute(HTML.NAME_ATTR, formInfo.getFormName()+
+ UIComponent form = RendererUtils.findNestingForm(uiComponent, facesContext);
+ writer.writeAttribute(HTML.NAME_ATTR, form.getClientId(facesContext) +
facesContext.getNamingContainerSeparatorChar() + group, null);
}
else
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlRendererUtils.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlRendererUtils.java
index b881845..0fb054d 100644
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlRendererUtils.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlRendererUtils.java
@@ -66,7 +66,6 @@ import javax.faces.model.SelectItemGroup;
import org.apache.myfaces.renderkit.ClientBehaviorEvents;
import org.apache.myfaces.renderkit.html.util.JSFAttr;
import org.apache.myfaces.renderkit.RendererUtils;
-import org.apache.myfaces.renderkit.html.util.FormInfo;
import org.apache.myfaces.renderkit.html.util.HTMLEncoder;
import org.apache.myfaces.renderkit.html.util.OutcomeTargetUtils;
import org.apache.myfaces.util.ComponentUtils;
@@ -257,8 +256,8 @@ public final class HtmlRendererUtils
String group = ((UISelectOne) component).getGroup();
if (group != null && !group.isEmpty())
{
- FormInfo formInfo = RendererUtils.findNestingForm(component, facesContext);
- String fullGroupId = formInfo.getFormName() +
+ UIComponent form = RendererUtils.findNestingForm(component, facesContext);
+ String fullGroupId = form.getClientId(facesContext) +
facesContext.getNamingContainerSeparatorChar() + group;
if (paramMap.containsKey(fullGroupId))
{
@@ -273,7 +272,7 @@ public final class HtmlRendererUtils
submittedValue,
component.getClientId(facesContext),
component.getValueExpression("value") != null);
- formInfo.getForm().visitTree(
+ form.visitTree(
VisitContext.createVisitContext(facesContext, null, FIND_SELECT_LIST_HINTS), callback);
}
}
@@ -1333,15 +1332,9 @@ public final class HtmlRendererUtils
* both necessary and sufficient to determine the full name of the
* field.</p>
*/
- public static String getHiddenCommandLinkFieldName(FormInfo formInfo)
+ public static String getHiddenCommandLinkFieldName(UIComponent form, FacesContext facesContext)
{
- return formInfo.getFormName() + ':' + HIDDEN_COMMANDLINK_FIELD_NAME;
- }
-
- public static String getHiddenCommandLinkFieldName(
- FormInfo formInfo, FacesContext facesContext)
- {
- return formInfo.getFormName() + ':' + HIDDEN_COMMANDLINK_FIELD_NAME;
+ return form.getClientId(facesContext) + ':' + HIDDEN_COMMANDLINK_FIELD_NAME;
}
public static boolean isPartialOrBehaviorSubmit(FacesContext facesContext,
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/util/FormInfo.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/util/FormInfo.java
deleted file mode 100644
index ef85786..0000000
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/util/FormInfo.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 org.apache.myfaces.renderkit.html.util;
-
-import javax.faces.component.UIComponent;
-
-public class FormInfo
-{
- private final UIComponent form;
- private final String formName;
-
- public FormInfo(final UIComponent form, final String formName)
- {
- this.form = form;
- this.formName = formName;
- }
-
- public UIComponent getForm()
- {
- return form;
- }
-
- public String getFormName()
- {
- return formName;
- }
-}