# Class Node.JspAttribute

java.lang.Object
org.apache.jasper.compiler.Node.JspAttribute

Enclosing class:
  `Node`

public static class Node.JspAttribute extends Object
Represents attributes that can be request time expressions. Can either be a plain attribute, an attribute that represents a request time expression value, or a named attribute (specified using the jsp:attribute standard action).

Author:
  Kin-man Chung, Jan Luehe, Shawn Bayern, Mark Roth

## Method Summary

Modifier and Type
Method
Description
`ELNode.Nodes`
`getEL()`
`String`
`getExpectedTypeName()`
`String`
`getLocalName()`
`String`
`getName()`
`Node.NamedAttribute`
`getNamedAttributeNode()`
Only makes sense if namedAttribute is true.
`String[]`
`getParameterTypeNames()`
`TagAttributeInfo`
`getTagAttributeInfo()`
`String`
`getURI()`
`String`
`getValue()`
Only makes sense if namedAttribute is false.
`boolean`
`isDeferredInput()`
`boolean`
`isDeferredMethodInput()`
`boolean`
`isDynamic()`
`boolean`
`isELInterpreterInput()`
`boolean`
`isExpression()`
`boolean`
`isLiteral()`
`boolean`
`isNamedAttribute()`
`void`
`validateEL(ExpressionFactory ef, ELContext ctx)`
Allow node to validate itself.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Method Details

### validateEL

public void validateEL(ExpressionFactory ef, ELContext ctx) throws ELException
Allow node to validate itself.

Parameters:
  `ef` - The expression factory to use to evaluate any EL
  `ctx` - The context to use to evaluate any EL
Throws:
  `ELException` - If validation fails

### getName

public String getName()

Returns:
  The name of the attribute

### getLocalName

public String getLocalName()

Returns:
  The local name of the attribute

### getURI

public String getURI()

Returns:
  The namespace of the attribute, or null if in the default namespace

### getTagAttributeInfo

public TagAttributeInfo getTagAttributeInfo()

### isDeferredInput

public boolean isDeferredInput()

Returns:
  return true if there's TagAttributeInfo meaning we need to assign a ValueExpression

### isDeferredMethodInput

public boolean isDeferredMethodInput()

Returns:
  return true if there's TagAttributeInfo meaning we need to assign a MethodExpression

### getExpectedTypeName

public String getExpectedTypeName()

### getParameterTypeNames

public String[] getParameterTypeNames()

### getValue

public String getValue()
Only makes sense if namedAttribute is false.

Returns:
  the value for the attribute, or the expression string (stripped of "<%=", "%>", "%=", or "%" but containing "${" and "}" for EL expressions)

### getNamedAttributeNode

public Node.NamedAttribute getNamedAttributeNode()
Only makes sense if namedAttribute is true.

Returns:
  the nodes that evaluate to the body of this attribute.

### isExpression

public boolean isExpression()

Returns:
  true if the value represents a traditional rtexprvalue

### isNamedAttribute

public boolean isNamedAttribute()

Returns:
  true if the value represents a NamedAttribute value.

### isELInterpreterInput

public boolean isELInterpreterInput()

Returns:
  true if the value represents an expression that should be fed to the expression interpreter false for string literals or rtexprvalues that should not be interpreted or reevaluated

### isLiteral

public boolean isLiteral()

Returns:
  true if the value is a string literal known at translation time.

### isDynamic

public boolean isDynamic()

Returns:
  `true` if the attribute is a "dynamic" attribute of a custom tag that implements DynamicAttributes interface. That is, a random extra attribute that is not declared by the tag.

### getEL

public ELNode.Nodes getEL()