1 64 65 package com.jcorporate.expresso.ext.struts.taglib.html; 66 67 import com.jcorporate.expresso.core.controller.ControllerElement; 68 import com.jcorporate.expresso.core.controller.Input; 69 import com.jcorporate.expresso.core.misc.StringUtil; 70 import com.jcorporate.expresso.ext.struts.taglib.ControllerUtils; 71 import org.apache.struts.taglib.html.BaseFieldTag; 72 import org.apache.struts.taglib.html.Constants; 73 import org.apache.struts.util.ResponseUtils; 74 75 import javax.servlet.jsp.JspException ; 76 77 78 85 public abstract class ExBaseFieldTag 86 extends BaseFieldTag { 87 private String name = null; 88 89 public void setName(String newName) { 90 name = newName; 91 } 92 93 public String getName() { 94 return name; 95 } 96 103 public int doStartTag() 104 throws JspException { 105 try { 106 String nameToUse = name; 107 String propertyToUse = property; 108 Input myInput = null; 109 110 if (StringUtil.notNull(nameToUse).equals(Constants.BEAN_KEY)) { 111 nameToUse = null; 112 } 113 if (nameToUse == null) { 114 myInput = ControllerUtils.findInput(pageContext, propertyToUse); 115 } else { 116 ControllerElement ce = ControllerUtils.findElement(pageContext, 117 nameToUse, 118 propertyToUse); 119 120 if (ce instanceof Input) { 121 myInput = (Input) ce; 122 } else { 123 throw new JspException ("Element '" + 124 StringUtil.notNull(propertyToUse) + 125 "' in bean '" + 126 StringUtil.notNull(nameToUse) + 127 "' is not an Input - it is a '" + 128 ce.getClass().getName() + "'"); 129 } 130 } 131 132 StringBuffer results = new StringBuffer ("<input type=\""); 134 results.append(type); 135 results.append("\" name=\""); 136 results.append(myInput.getName()); 137 results.append("\""); 138 139 if (accesskey != null) { 140 results.append(" accesskey=\""); 141 results.append(accesskey); 142 results.append("\""); 143 } 144 if (accept != null) { 145 results.append(" accept=\""); 146 results.append(accept); 147 results.append("\""); 148 } 149 150 String maxToUse = maxlength; 151 152 if (maxToUse == null) { 153 maxToUse = "" + myInput.getMaxLength(); 154 } 155 if (maxToUse != null) { 156 results.append(" maxlength=\""); 157 results.append(maxToUse); 158 results.append("\""); 159 } 160 161 String colsToUse = cols; 162 163 if (colsToUse == null) { 164 colsToUse = "" + myInput.getDisplayLength(); 165 } 166 if (colsToUse != null) { 167 results.append(" size=\""); 168 results.append(colsToUse); 169 results.append("\""); 170 } 171 if (tabindex != null) { 172 results.append(" tabindex=\""); 173 results.append(tabindex); 174 results.append("\""); 175 } 176 177 results.append(" value=\""); 178 179 if (value != null) { 180 results.append(value); 181 } else if (redisplay || !"password".equals(type)) { 182 Object value = myInput.getDefaultValue(); 183 184 if (value == null) { 185 value = ""; 186 } 187 188 results.append(value.toString()); 189 } 190 191 value = null; 192 results.append("\""); 193 results.append(prepareEventHandlers()); 194 results.append(prepareStyles()); 195 results.append(">"); 196 197 ResponseUtils.write(pageContext, results.toString()); 199 } catch (NullPointerException ex) { 200 ex.printStackTrace(); 201 throw new JspException ("BaseFieldTag.startTag(): " + ex.getMessage()); 206 } 207 208 return (EVAL_BODY_BUFFERED); 211 } 212 } | Popular Tags |