/* * Copyright 2004 The Apache Software Foundation. * * 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 org.apache.myfaces.renderkit.html; import org.apache.myfaces.shared_impl.renderkit.JSFAttr; import org.apache.myfaces.shared_impl.renderkit.RendererUtils; import org.apache.myfaces.shared_impl.renderkit.html.HTML; import org.apache.myfaces.shared_impl.renderkit.html.HtmlRenderer; import org.apache.myfaces.shared_impl.renderkit.html.HtmlRendererUtils; import javax.faces.component.UIComponent; import javax.faces.component.UIInput; import javax.faces.component.UIOutput; import javax.faces.context.FacesContext; import javax.faces.context.ResponseWriter; import javax.faces.convert.ConverterException; import java.io.IOException; /** * @author Thomas Spiegl (latest modification by $Author$) * @author Anton Koinov * @version $Revision$ $Date$ */ public class HtmlHiddenRenderer extends HtmlRenderer { public void encodeEnd(FacesContext facesContext, UIComponent uiComponent) throws IOException { RendererUtils.checkParamValidity(facesContext, uiComponent, UIInput.class); ResponseWriter writer = facesContext.getResponseWriter(); writer.startElement(HTML.INPUT_ELEM, uiComponent); writer.writeAttribute(HTML.TYPE_ATTR, HTML.INPUT_TYPE_HIDDEN, null); String clientId = uiComponent.getClientId(facesContext); writer.writeAttribute(HTML.ID_ATTR, clientId, null); writer.writeAttribute(HTML.NAME_ATTR, clientId, null); String value = RendererUtils.getStringValue(facesContext, uiComponent); if (value != null) { writer.writeAttribute(HTML.VALUE_ATTR, value, JSFAttr.VALUE_ATTR); } writer.endElement(HTML.INPUT_ELEM); } public Object getConvertedValue(FacesContext facesContext, UIComponent uiComponent, Object submittedValue) throws ConverterException { RendererUtils.checkParamValidity(facesContext, uiComponent, UIOutput.class); return RendererUtils.getConvertedUIOutputValue(facesContext, (UIOutput)uiComponent, submittedValue); } public void decode(FacesContext facesContext, UIComponent component) { RendererUtils.checkParamValidity(facesContext,component,null); if (component instanceof UIInput) { HtmlRendererUtils.decodeUIInput(facesContext, component); } else { throw new IllegalArgumentException("Unsupported component class " + component.getClass().getName()); } } }