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.Constants; 72 import org.apache.struts.taglib.html.TextareaTag; 73 import org.apache.struts.util.ResponseUtils; 74 75 import javax.servlet.jsp.JspException ; 76 77 78 83 public class ExTextareaTag 84 extends TextareaTag { 85 92 public int doStartTag() 93 throws JspException { 94 Input myInput = null; 95 String nameToUse = name; 96 97 if (StringUtil.notNull(nameToUse).equals(Constants.BEAN_KEY)) { 98 nameToUse = null; 99 } 100 if (nameToUse == null) { 101 myInput = ControllerUtils.findInput(pageContext, property); 102 } else { 103 ControllerElement ce = ControllerUtils.findElement(pageContext, 104 nameToUse, 105 property); 106 107 if (ce == null) { 108 throw new JspException ("Input element '" + 109 StringUtil.notNull(property) + 110 "' not found."); 111 } 112 if (ce instanceof Input) { 113 myInput = (Input) ce; 114 } else { 115 throw new JspException ("Element '" + 116 StringUtil.notNull(property) + 117 "' in bean '" + 118 StringUtil.notNull(nameToUse) + 119 "' is not an Input - it is a '" + 120 ce.getClass().getName() + "'"); 121 } 122 } 123 124 StringBuffer results = new StringBuffer ("<textarea"); 126 results.append(" name=\""); 127 results.append(myInput.getName()); 128 results.append("\""); 129 130 if (accesskey != null) { 131 results.append(" accesskey=\""); 132 results.append(accesskey); 133 results.append("\""); 134 } 135 if (tabindex != null) { 136 results.append(" tabindex=\""); 137 results.append(tabindex); 138 results.append("\""); 139 } 140 141 String colsToUse = cols; 142 143 if (colsToUse == null) { 144 colsToUse = "" + myInput.getDisplayLength(); 145 } 146 if (colsToUse != null) { 147 results.append(" cols=\""); 148 results.append(colsToUse); 149 results.append("\""); 150 } 151 152 String rowsToUse = rows; 153 154 if (rowsToUse == null) { 155 rowsToUse = "" + myInput.getLines(); 156 } 157 if (rowsToUse != null) { 158 results.append(" rows=\""); 159 results.append(rowsToUse); 160 results.append("\""); 161 } 162 163 results.append(prepareEventHandlers()); 164 results.append(prepareStyles()); 165 results.append(">"); 166 results.append(myInput.getDefaultValue()); 167 results.append("</textarea>"); 168 169 ResponseUtils.write(pageContext, results.toString()); 171 172 return (EVAL_BODY_BUFFERED); 175 } 176 } 177 | Popular Tags |