/*
 * Copyright 2002-2014 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;

The <password> tag renders an HTML 'input' tag with type 'password' using the bound value.

Attribute Summary
Attribute Required? 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.

showPassword

false

true

Is the password value to be shown? Defaults to false.

size

false

true

HTML Optional Attribute

tabindex

false

true

HTML Standard Attribute

title

false

true

HTML Standard Attribute

Author:Rob Harrop, Rick Evans, Rossen Stoyanchev
Since:2.0
/** * The {@code <password>} tag renders an HTML 'input' tag with type 'password' * using the bound value. * * <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>alt</p></td> * <td><p>false</p></td> * <td><p>true</p></td> * <td><p>HTML Optional Attribute</p></td> * </tr> * <tr class="altColor"> * <td><p>autocomplete</p></td> * <td><p>false</p></td> * <td><p>true</p></td> * <td><p>Common Optional Attribute</p></td> * </tr> * <tr class="rowColor"> * <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="altColor"> * <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="rowColor"> * <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="altColor"> * <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="rowColor"> * <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="altColor"> * <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="rowColor"> * <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="altColor"> * <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="rowColor"> * <td><p>maxlength</p></td> * <td><p>false</p></td> * <td><p>true</p></td> * <td><p>HTML Optional 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>showPassword</p></td> * <td><p>false</p></td> * <td><p>true</p></td> * <td><p>Is the password value to be shown? Defaults to false.</p></td> * </tr> * <tr class="rowColor"> * <td><p>size</p></td> * <td><p>false</p></td> * <td><p>true</p></td> * <td><p>HTML Optional Attribute</p></td> * </tr> * <tr class="altColor"> * <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="rowColor"> * <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 Rick Evans * @author Rossen Stoyanchev * @since 2.0 */
@SuppressWarnings("serial") public class PasswordInputTag extends InputTag { private boolean showPassword = false;
Is the password value to be rendered?
Params:
  • showPassword – true if the password value is to be rendered
/** * Is the password value to be rendered? * @param showPassword {@code true} if the password value is to be rendered */
public void setShowPassword(boolean showPassword) { this.showPassword = showPassword; }
Is the password value to be rendered?
Returns:true if the password value to be rendered
/** * Is the password value to be rendered? * @return {@code true} if the password value to be rendered */
public boolean isShowPassword() { return this.showPassword; }
Flags "type" as an illegal dynamic attribute.
/** * Flags "type" as an illegal dynamic attribute. */
@Override protected boolean isValidDynamicAttribute(String localName, Object value) { return !"type".equals(localName); }
Return 'password' causing the rendered HTML 'input' element to have a 'type' of 'password'.
/** * Return '{@code password}' causing the rendered HTML '{@code input}' * element to have a '{@code type}' of '{@code password}'. */
@Override protected String getType() { return "password"; }
The PasswordInputTag only writes it's value if the 'showPassword' property value is true.
/** * The {@link PasswordInputTag} only writes it's value if the * {@link #setShowPassword(boolean) 'showPassword'} property value is * {@link Boolean#TRUE true}. */
@Override protected void writeValue(TagWriter tagWriter) throws JspException { if (this.showPassword) { super.writeValue(tagWriter); } else { tagWriter.writeAttribute("value", processFieldValue(getName(), "", getType())); } } }