1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.renderkit.html;
20
21 import java.io.IOException;
22
23 import javax.faces.component.UIComponent;
24 import javax.faces.component.UIInput;
25 import javax.faces.component.UIOutput;
26 import javax.faces.context.FacesContext;
27 import javax.faces.context.ResponseWriter;
28 import javax.faces.convert.ConverterException;
29
30 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFRenderer;
31 import org.apache.myfaces.shared.renderkit.JSFAttr;
32 import org.apache.myfaces.shared.renderkit.RendererUtils;
33 import org.apache.myfaces.shared.renderkit.html.HTML;
34 import org.apache.myfaces.shared.renderkit.html.HtmlRenderer;
35 import org.apache.myfaces.shared.renderkit.html.HtmlRendererUtils;
36
37
38
39
40
41
42
43 @JSFRenderer(renderKitId = "HTML_BASIC", family = "javax.faces.Input", type = "javax.faces.Hidden")
44 public class HtmlHiddenRenderer extends HtmlRenderer
45 {
46 @Override
47 public void encodeEnd(FacesContext facesContext, UIComponent uiComponent) throws IOException
48 {
49 RendererUtils.checkParamValidity(facesContext, uiComponent, UIInput.class);
50
51 ResponseWriter writer = facesContext.getResponseWriter();
52
53 writer.startElement(HTML.INPUT_ELEM, uiComponent);
54 writer.writeAttribute(HTML.TYPE_ATTR, HTML.INPUT_TYPE_HIDDEN, null);
55
56 String clientId = uiComponent.getClientId(facesContext);
57 writer.writeAttribute(HTML.ID_ATTR, clientId, null);
58 writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
59
60 String value = RendererUtils.getStringValue(facesContext, uiComponent);
61 if (value != null)
62 {
63 writer.writeAttribute(HTML.VALUE_ATTR, value, JSFAttr.VALUE_ATTR);
64 }
65
66 writer.endElement(HTML.INPUT_ELEM);
67 }
68
69 @Override
70 public Object getConvertedValue(FacesContext facesContext, UIComponent uiComponent, Object submittedValue)
71 throws ConverterException
72 {
73 RendererUtils.checkParamValidity(facesContext, uiComponent, UIOutput.class);
74 return RendererUtils.getConvertedUIOutputValue(facesContext, (UIOutput)uiComponent, submittedValue);
75 }
76
77 @Override
78 public void decode(FacesContext facesContext, UIComponent component)
79 {
80 RendererUtils.checkParamValidity(facesContext, component, null);
81
82 if (component instanceof UIInput)
83 {
84 HtmlRendererUtils.decodeUIInput(facesContext, component);
85 }
86 else
87 {
88 throw new IllegalArgumentException("Unsupported component class " + component.getClass().getName());
89 }
90 }
91
92 }