/*
* Copyright 2002-2018 the original author or authors.
*
* 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
*
* https://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.springframework.web.servlet.tags.form;
import javax.servlet.jsp.JspException;
import org.springframework.lang.Nullable;
The <textarea>
tag renders an HTML 'textarea'.
Attribute Summary
Attribute
Required?
Runtime Expression?
Description
accesskey
false
true
HTML Standard Attribute
cols
false
true
HTML Required Attribute
cssClass
false
true
HTML Optional Attribute
cssErrorClass
false
true
HTML Optional Attribute. Used when the bound field has errors.
cssStyle
false
true
HTML Optional Attribute
dir
false
true
HTML Standard Attribute
disabled
false
true
HTML Optional Attribute. Setting the value of this attribute to 'true'
will disable the HTML element.
htmlEscape
false
true
Enable/disable HTML escaping of rendered values.
id
false
true
HTML Standard Attribute
lang
false
true
HTML Standard Attribute
onblur
false
true
HTML Event Attribute
onchange
false
true
HTML Event Attribute
onclick
false
true
HTML Event Attribute
ondblclick
false
true
HTML Event Attribute
onfocus
false
true
HTML Event Attribute
onkeydown
false
true
HTML Event Attribute
onkeypress
false
true
HTML Event Attribute
onkeyup
false
true
HTML Event Attribute
onmousedown
false
true
HTML Event Attribute
onmousemove
false
true
HTML Event Attribute
onmouseout
false
true
HTML Event Attribute
onmouseover
false
true
HTML Event Attribute
onmouseup
false
true
HTML Event Attribute
onselect
false
true
HTML Event Attribute
path
true
true
Path to property for data binding
readonly
false
true
HTML Optional Attribute. Setting the value of this attribute to 'true'
will make the HTML element readonly.
rows
false
true
HTML Required Attribute
tabindex
false
true
HTML Standard Attribute
title
false
true
HTML Standard Attribute
Author: Rob Harrop, Juergen Hoeller Since: 2.0
/**
* The {@code <textarea>} tag renders an HTML 'textarea'.
*
* <p>
* <table>
* <caption>Attribute Summary</caption>
* <thead>
* <tr>
* <th class="colFirst">Attribute</th>
* <th class="colOne">Required?</th>
* <th class="colOne">Runtime Expression?</th>
* <th class="colLast">Description</th>
* </tr>
* </thead>
* <tbody>
* <tr class="altColor">
* <td><p>accesskey</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Standard Attribute</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>cols</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Required Attribute</p></td>
* </tr>
* <tr class="altColor">
* <td><p>cssClass</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Optional Attribute</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>cssErrorClass</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Optional Attribute. Used when the bound field has errors.</p></td>
* </tr>
* <tr class="altColor">
* <td><p>cssStyle</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Optional Attribute</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>dir</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Standard Attribute</p></td>
* </tr>
* <tr class="altColor">
* <td><p>disabled</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Optional Attribute. Setting the value of this attribute to 'true'
* will disable the HTML element.</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>htmlEscape</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>Enable/disable HTML escaping of rendered values.</p></td>
* </tr>
* <tr class="altColor">
* <td><p>id</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Standard Attribute</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>lang</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Standard Attribute</p></td>
* </tr>
* <tr class="altColor">
* <td><p>onblur</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>onchange</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="altColor">
* <td><p>onclick</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>ondblclick</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="altColor">
* <td><p>onfocus</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>onkeydown</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="altColor">
* <td><p>onkeypress</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>onkeyup</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="altColor">
* <td><p>onmousedown</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>onmousemove</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="altColor">
* <td><p>onmouseout</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>onmouseover</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="altColor">
* <td><p>onmouseup</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>onselect</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Event Attribute</p></td>
* </tr>
* <tr class="altColor">
* <td><p>path</p></td>
* <td><p>true</p></td>
* <td><p>true</p></td>
* <td><p>Path to property for data binding</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>readonly</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Optional Attribute. Setting the value of this attribute to 'true'
* will make the HTML element readonly.</p></td>
* </tr>
* <tr class="altColor">
* <td><p>rows</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Required Attribute</p></td>
* </tr>
* <tr class="rowColor">
* <td><p>tabindex</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Standard Attribute</p></td>
* </tr>
* <tr class="altColor">
* <td><p>title</p></td>
* <td><p>false</p></td>
* <td><p>true</p></td>
* <td><p>HTML Standard Attribute</p></td>
* </tr>
* </tbody>
* </table>
*
* @author Rob Harrop
* @author Juergen Hoeller
* @since 2.0
*/
@SuppressWarnings("serial")
public class TextareaTag extends AbstractHtmlInputElementTag {
public static final String ROWS_ATTRIBUTE = "rows";
public static final String COLS_ATTRIBUTE = "cols";
public static final String ONSELECT_ATTRIBUTE = "onselect";
@Nullable
private String rows;
@Nullable
private String cols;
@Nullable
private String onselect;
Set the value of the 'rows
' attribute. May be a runtime expression. /**
* Set the value of the '{@code rows}' attribute.
* May be a runtime expression.
*/
public void setRows(String rows) {
this.rows = rows;
}
Get the value of the 'rows
' attribute. /**
* Get the value of the '{@code rows}' attribute.
*/
@Nullable
protected String getRows() {
return this.rows;
}
Set the value of the 'cols
' attribute. May be a runtime expression. /**
* Set the value of the '{@code cols}' attribute.
* May be a runtime expression.
*/
public void setCols(String cols) {
this.cols = cols;
}
Get the value of the 'cols
' attribute. /**
* Get the value of the '{@code cols}' attribute.
*/
@Nullable
protected String getCols() {
return this.cols;
}
Set the value of the 'onselect
' attribute. May be a runtime expression. /**
* Set the value of the '{@code onselect}' attribute.
* May be a runtime expression.
*/
public void setOnselect(String onselect) {
this.onselect = onselect;
}
Get the value of the 'onselect
' attribute. /**
* Get the value of the '{@code onselect}' attribute.
*/
@Nullable
protected String getOnselect() {
return this.onselect;
}
@Override
protected int writeTagContent(TagWriter tagWriter) throws JspException {
tagWriter.startTag("textarea");
writeDefaultAttributes(tagWriter);
writeOptionalAttribute(tagWriter, ROWS_ATTRIBUTE, getRows());
writeOptionalAttribute(tagWriter, COLS_ATTRIBUTE, getCols());
writeOptionalAttribute(tagWriter, ONSELECT_ATTRIBUTE, getOnselect());
String value = getDisplayString(getBoundValue(), getPropertyEditor());
tagWriter.appendValue("\r\n" + processFieldValue(getName(), value, "textarea"));
tagWriter.endTag();
return SKIP_BODY;
}
}