These are all instances in compat of creation of hidden input fields which have their name specified, but not an id, which would make resetHiddenFields() clear them after a submit:
icefaces2/compat/core/src/main/java/com/icesoft/faces/application/ExtrasSetup.java
com.icesoft.faces.application.ExtrasSetup.FormHiddenInputFieldsRenderer#encode
writer.startElement("input", component);
writer.writeAttribute("type", "hidden", null);
writer.writeAttribute("name", CurrentStyle.CSS_UPDATE_FIELD, null);
writer.writeAttribute("value", "", null);
writer.endElement("input");
Same method, further down
if (FormRenderer.COMMAND_LINK_HIDDEN_FIELD.equals(nextField.getValue()))
{
writer.startElement("input", component);
writer.writeAttribute("type", "hidden", null);
writer.writeAttribute("name", nextField.getKey().toString(), null);
writer.endElement("input");
}
icefaces2/compat/components/src/main/java/com/icesoft/faces/component/ext/renderkit/TableRenderer.java
com.icesoft.faces.component.ext.renderkit.TableRenderer#encodeChildren
//rowSelectedField.setAttribute(HTML.ID_ATTR, paramId);
rowSelectedField.setAttribute(HTML.NAME_ATTR, paramId);
rowSelectedField.setAttribute(HTML.TYPE_ATTR, "hidden");
hiddenInputNode = rowSelectedField;
rowSelectionFunctionName = "Ice.tableRowClicked";
Element clickedRowField = domContext.createElement(HTML.INPUT_ELEM);
String clickedRowParam = getClickedRowParameterName(uiComponent.getClientId(facesContext));
clickedRowField.setAttribute(HTML.TYPE_ATTR, "hidden");
clickedRowField.setAttribute(HTML.NAME_ATTR, clickedRowParam);
Element clickCountField = domContext.createElement(HTML.INPUT_ELEM);
String clickCountParam = getClickCountParameterName(uiComponent.getClientId(facesContext));
clickCountField.setAttribute(HTML.TYPE_ATTR, "hidden");
clickCountField.setAttribute(HTML.NAME_ATTR, clickCountParam);
icefaces2/compat/components/src/main/java/com/icesoft/faces/component/panelcollapsible/PanelCollapsibleRenderer.java
com.icesoft.faces.component.panelcollapsible.PanelCollapsibleRenderer#encodeBegin
Element hiddenField = domContext.createElement(HTML.INPUT_ELEM);
hiddenField.setAttribute(HTML.NAME_ATTR, uiComponent.getClientId(facesContext) + "Expanded");
hiddenField.setAttribute(HTML.TYPE_ATTR, "hidden");
icefaces2/compat/components/src/main/java/com/icesoft/faces/component/tree/TreeRenderer.java
com.icesoft.faces.component.tree.TreeRenderer#encodeEnd
Element hiddenTreeAction = domContext.createElement(HTML.INPUT_ELEM);
hiddenTreeAction.setAttribute(HTML.TYPE_ATTR, "hidden");
hiddenTreeAction.setAttribute(HTML.NAME_ATTR, CustomComponentUtils.getHiddenTreeActionFieldName(
uiComponent.getClientId(
facesContext),
CustomComponentUtils.getFormName(
uiComponent,
facesContext)));
icefaces2/compat/core/src/main/java/com/icesoft/faces/renderkit/dom_html_basic/FormRenderer.java
com.icesoft.faces.renderkit.dom_html_basic.FormRenderer#encodeBegin
Element formHiddenField = domContext.createElement("input");
formHiddenField.setAttribute("type", "hidden");
formHiddenField.setAttribute("name", formClientId);
formHiddenField.setAttribute("value", formClientId);
Same method, further down
Element encodedURLField = domContext.createElement("input");
encodedURLField.setAttribute("type", "hidden");
encodedURLField.setAttribute("name", "javax.faces.encodedURL");
encodedURLField.setAttribute("value", encodedPartialActionURL);
Same method, further down
Element conversationIDElement =
domContext.createElement(HTML.INPUT_ELEM);
if (log.isLoggable(Level.FINE))
{
log.fine("Embedding Seam Param - name: " + conversationParamName +
", value: " + conversationId);
}
conversationIDElement
.setAttribute(HTML.TYPE_ATTR, HTML.INPUT_TYPE_HIDDEN);
conversationIDElement
.setAttribute(HTML.NAME_ATTR, conversationParamName);
conversationIDElement.setAttribute(HTML.VALUE_ATTR, conversationId);
icefaces2/compat/components/src/main/java/com/icesoft/faces/component/selectinputtext/SelectInputTextRenderer.java
com.icesoft.faces.component.selectinputtext.SelectInputTextRenderer#encodeBegin
Element index = domContext.createElement(HTML.INPUT_ELEM);
index.setAttribute(HTML.TYPE_ATTR, HTML.INPUT_TYPE_HIDDEN);
String indexId = ClientIdPool.get(clientId + AUTOCOMPLETE_INDEX);
index.setAttribute(HTML.NAME_ATTR, indexId);
First remove uses of the API, then remove the API itself, so that the icefaces2 trunk always functions properly.