1 18 package org.apache.beehive.netui.tags.html; 19 20 import org.apache.beehive.netui.util.internal.InternalStringBuilder; 21 22 import org.apache.beehive.netui.tags.ByRef; 23 import org.apache.beehive.netui.tags.HtmlUtils; 24 import org.apache.beehive.netui.tags.rendering.*; 25 import org.apache.beehive.netui.util.Bundle; 26 27 import javax.servlet.ServletRequest ; 28 import javax.servlet.jsp.JspException ; 29 30 31 45 public class Hidden 46 extends HtmlDataSourceTag 47 { 48 private InputHiddenTag.State _state = new InputHiddenTag.State(); 49 50 private String _value; 51 private Object _dataInput; 52 53 56 public String getTagName() 57 { 58 return "Hidden"; 59 } 60 61 66 protected AbstractHtmlState getState() 67 { 68 return _state; 69 } 70 71 77 public void setAttribute(String name, String value, String facet) 78 throws JspException  79 { 80 if (name == null) 81 return; 82 83 if (name.equals(TYPE) || name.equals(VALUE)) { 84 String s = Bundle.getString("Tags_AttributeMayNotBeSet", new Object []{name}); 85 registerTagError(s, null); 86 } 87 super.setAttribute(name, value, facet); 88 } 89 90 105 public void setDataInput(Object dataInput) 106 { 107 _dataInput = dataInput; 108 } 109 110 114 public int doStartTag() throws JspException  115 { 116 return EVAL_BODY_BUFFERED; 117 } 118 119 123 public int doAfterBody() throws JspException  124 { 125 126 if (bodyContent != null) { 127 bodyContent.clearBody(); 128 } 129 return SKIP_BODY; 130 } 131 132 136 public int doEndTag() throws JspException  137 { 138 Object val = evaluateDataSource(); 139 140 ServletRequest req = pageContext.getRequest(); 141 142 if (_dataInput != null) { 143 val = _dataInput.toString(); 144 } 145 146 if (hasErrors()) 148 return reportAndExit(SKIP_BODY); 149 150 if (val != null) { 151 _value = val.toString(); 152 } 153 154 ByRef ref = new ByRef(); 156 nameHtmlControl(_state, ref); 157 158 if (_value != null) { 159 InternalStringBuilder sb = new InternalStringBuilder(_value.length() + 16); 160 StringBuilderRenderAppender sbAppend = new StringBuilderRenderAppender(sb); 161 HtmlUtils.filter(_value, sbAppend); 162 _state.value = sb.toString(); 163 } 164 165 if (_state.value == null) 167 _state.value = ""; 168 169 WriteRenderAppender writer = new WriteRenderAppender(pageContext); 170 TagRenderingBase hiddenTag = TagRenderingBase.Factory.getRendering(TagRenderingBase.INPUT_HIDDEN_TAG, req); 171 172 hiddenTag.doStartTag(writer, _state); 173 hiddenTag.doEndTag(writer); 174 175 if (!ref.isNull()) 176 write((String ) ref.getRef()); 177 178 localRelease(); 180 return SKIP_BODY; 181 } 182 183 186 protected void localRelease() 187 { 188 super.localRelease(); 189 190 _state.clear(); 191 _value = null; 192 _dataInput = null; 193 } 194 195 201 212 public void setTabindex(int tabindex) 213 { 214 _state.registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.TABINDEX, Integer.toString(tabindex)); 215 } 216 } 217 | Popular Tags |