All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.springframework.web.servlet.tags.form.InputTag Maven / Gradle / Ivy

There is a newer version: 6.1.6
Show newest version
/*
 * 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 java.util.Map;

import javax.servlet.jsp.JspException;

import org.springframework.lang.Nullable;

/**
 * The {@code } tag renders an HTML 'input' tag with type 'text' using
 * the bound value.
 *
 * 

*

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Attribute Summary
AttributeRequired?Runtime Expression?Description

accesskey

false

true

HTML Standard Attribute

alt

false

true

HTML Optional Attribute

autocomplete

false

true

Common Optional 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

maxlength

false

true

HTML Optional 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.

size

false

true

HTML Optional Attribute

tabindex

false

true

HTML Standard Attribute

title

false

true

HTML Standard Attribute

* * @author Rob Harrop * @author Juergen Hoeller * @author Rossen Stoyanchev * @since 2.0 */ @SuppressWarnings("serial") public class InputTag extends AbstractHtmlInputElementTag { public static final String SIZE_ATTRIBUTE = "size"; public static final String MAXLENGTH_ATTRIBUTE = "maxlength"; public static final String ALT_ATTRIBUTE = "alt"; public static final String ONSELECT_ATTRIBUTE = "onselect"; public static final String AUTOCOMPLETE_ATTRIBUTE = "autocomplete"; @Nullable private String size; @Nullable private String maxlength; @Nullable private String alt; @Nullable private String onselect; @Nullable private String autocomplete; /** * Set the value of the '{@code size}' attribute. * May be a runtime expression. */ public void setSize(String size) { this.size = size; } /** * Get the value of the '{@code size}' attribute. */ @Nullable protected String getSize() { return this.size; } /** * Set the value of the '{@code maxlength}' attribute. * May be a runtime expression. */ public void setMaxlength(String maxlength) { this.maxlength = maxlength; } /** * Get the value of the '{@code maxlength}' attribute. */ @Nullable protected String getMaxlength() { return this.maxlength; } /** * Set the value of the '{@code alt}' attribute. * May be a runtime expression. */ public void setAlt(String alt) { this.alt = alt; } /** * Get the value of the '{@code alt}' attribute. */ @Nullable protected String getAlt() { return this.alt; } /** * 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 '{@code onselect}' attribute. */ @Nullable protected String getOnselect() { return this.onselect; } /** * Set the value of the '{@code autocomplete}' attribute. * May be a runtime expression. */ public void setAutocomplete(String autocomplete) { this.autocomplete = autocomplete; } /** * Get the value of the '{@code autocomplete}' attribute. */ @Nullable protected String getAutocomplete() { return this.autocomplete; } /** * Writes the '{@code input}' tag to the supplied {@link TagWriter}. * Uses the value returned by {@link #getType()} to determine which * type of '{@code input}' element to render. */ @Override protected int writeTagContent(TagWriter tagWriter) throws JspException { tagWriter.startTag("input"); writeDefaultAttributes(tagWriter); Map attributes = getDynamicAttributes(); if (attributes == null || !attributes.containsKey("type")) { tagWriter.writeAttribute("type", getType()); } writeValue(tagWriter); // custom optional attributes writeOptionalAttribute(tagWriter, SIZE_ATTRIBUTE, getSize()); writeOptionalAttribute(tagWriter, MAXLENGTH_ATTRIBUTE, getMaxlength()); writeOptionalAttribute(tagWriter, ALT_ATTRIBUTE, getAlt()); writeOptionalAttribute(tagWriter, ONSELECT_ATTRIBUTE, getOnselect()); writeOptionalAttribute(tagWriter, AUTOCOMPLETE_ATTRIBUTE, getAutocomplete()); tagWriter.endTag(); return SKIP_BODY; } /** * Writes the '{@code value}' attribute to the supplied {@link TagWriter}. * Subclasses may choose to override this implementation to control exactly * when the value is written. */ protected void writeValue(TagWriter tagWriter) throws JspException { String value = getDisplayString(getBoundValue(), getPropertyEditor()); String type = null; Map attributes = getDynamicAttributes(); if (attributes != null) { type = (String) attributes.get("type"); } if (type == null) { type = getType(); } tagWriter.writeAttribute("value", processFieldValue(getName(), value, type)); } /** * Flags {@code type="checkbox"} and {@code type="radio"} as illegal * dynamic attributes. */ @Override protected boolean isValidDynamicAttribute(String localName, Object value) { return !("type".equals(localName) && ("checkbox".equals(value) || "radio".equals(value))); } /** * Get the value of the '{@code type}' attribute. Subclasses * can override this to change the type of '{@code input}' element * rendered. Default value is '{@code text}'. */ protected String getType() { return "text"; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy