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

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

There is a newer version: 5.3.34
Show newest version
/*
 * Copyright 2002-2007 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
 *
 *      http://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.util.Assert;
import org.springframework.util.StringUtils;

/**
 * Databinding-aware JSP tag for rendering an HTML 'label' element
 * that defines text that is associated with a single form element.
 *
 * 

The {@link #setFor(String) 'for'} attribute is required. * *

See the "formTags" showcase application that ships with the * full Spring distribution for an example of this class in action. * * @author Rob Harrop * @author Juergen Hoeller * @since 2.0 */ public class LabelTag extends AbstractHtmlElementTag { /** * The HTML 'label' tag. */ private static final String LABEL_TAG = "label"; /** * The name of the 'for' attribute. */ private static final String FOR_ATTRIBUTE = "for"; /** * The {@link TagWriter} instance being used. *

Stored so we can close the tag on {@link #doEndTag()}. */ private TagWriter tagWriter; /** * The value of the 'for' attribute. */ private String forId; /** * Set the value of the 'for' attribute. *

Defaults to the value of {@link #getPath}; may be a runtime expression. * @throws IllegalArgumentException if the supplied value is null */ public void setFor(String forId) { Assert.notNull(forId, "'forId' must not be null"); this.forId = forId; } /** * Get the value of the 'id' attribute. *

May be a runtime expression. */ public String getFor() { return this.forId; } /** * Writes the opening 'label' tag and forces a block tag so * that body content is written correctly. * @return {@link javax.servlet.jsp.tagext.Tag#EVAL_BODY_INCLUDE} */ protected int writeTagContent(TagWriter tagWriter) throws JspException { tagWriter.startTag(LABEL_TAG); tagWriter.writeAttribute(FOR_ATTRIBUTE, resolveFor()); writeDefaultAttributes(tagWriter); tagWriter.forceBlock(); this.tagWriter = tagWriter; return EVAL_BODY_INCLUDE; } /** * Overrides {@link #getName()} to always return the empty string "", * because the 'name' attribute is not supported by the * 'label' tag. * @return the value for the HTML 'name' attribute */ protected String getName() throws JspException { // This also suppresses the 'id' attribute (which is okay for a





© 2015 - 2024 Weber Informatics LLC | Privacy Policy