Class JspUtil

java.lang.Object
org.apache.jasper.compiler.JspUtil

public class JspUtil extends Object
This class has all the utility method(s). Ideally should move all the bean containers here.
Author:
Mandar Raje., Rajiv Mordani., Danno Ferrin, Pierre Delisle, Shawn Bayern, Mark Roth
  • Field Details

  • Constructor Details

    • JspUtil

      public JspUtil()
  • Method Details

    • getExprInXml

      public static String getExprInXml(String expression)
      Takes a potential expression and converts it into XML form.
      Parameters:
      expression - The expression to convert
      Returns:
      XML view
    • checkScope

      public static void checkScope(String scope, org.apache.jasper.compiler.Node n, ErrorDispatcher err) throws JasperException
      Checks to see if the given scope is valid.
      Parameters:
      scope - The scope to be checked
      n - The Node containing the 'scope' attribute whose value is to be checked
      err - error dispatcher
      Throws:
      JasperException - if scope is not null and different from "page", "request", "session", and "application"
    • checkAttributes

      public static void checkAttributes(String typeOfTag, org.apache.jasper.compiler.Node n, JspUtil.ValidAttribute[] validAttributes, ErrorDispatcher err) throws JasperException
      Checks if all mandatory attributes are present and if all attributes present have valid names. Checks attributes specified as XML-style attributes as well as attributes specified using the jsp:attribute standard action.
      Parameters:
      typeOfTag - The tag type
      n - The corresponding node
      validAttributes - The array with the valid attributes
      err - Dispatcher for errors
      Throws:
      JasperException - An error occurred
    • escapeXml

      @Deprecated public static String escapeXml(String s)
      Deprecated.
      This method will be removed in Tomcat 9
      Escape the 5 entities defined by XML.
      Parameters:
      s - String to escape
      Returns:
      XML escaped string
    • booleanValue

      public static boolean booleanValue(String s)
      Convert a String value to 'boolean'. Besides the standard conversions done by Boolean.parseBoolean(s), the value "yes" (ignore case) is also converted to 'true'. If 's' is null, then 'false' is returned.
      Parameters:
      s - the string to be converted
      Returns:
      the boolean value associated with the string s
    • toClass

      public static Class<?> toClass(String type, ClassLoader loader) throws ClassNotFoundException
      Returns the Class object associated with the class or interface with the given string name.

      The Class object is determined by passing the given string name to the Class.forName() method, unless the given string name represents a primitive type, in which case it is converted to a Class object by appending ".class" to it (e.g., "int.class").

      Parameters:
      type - The class name, array or primitive type
      loader - The class loader
      Returns:
      the loaded class
      Throws:
      ClassNotFoundException - Loading class failed
    • interpreterCall

      public static String interpreterCall(boolean isTagFile, String expression, Class<?> expectedType, String fnmapvar)
      Produces a String representing a call to the EL interpreter.
      Parameters:
      isTagFile - true if the file is a tag file rather than a JSP
      expression - a String containing zero or more "${}" expressions
      expectedType - the expected type of the interpreted result
      fnmapvar - Variable pointing to a function map.
      Returns:
      a String representing a call to the EL interpreter.
    • coerceToPrimitiveBoolean

      public static String coerceToPrimitiveBoolean(String s, boolean isNamedAttribute)
    • coerceToBoolean

      public static String coerceToBoolean(String s, boolean isNamedAttribute)
    • coerceToPrimitiveByte

      public static String coerceToPrimitiveByte(String s, boolean isNamedAttribute)
    • coerceToByte

      public static String coerceToByte(String s, boolean isNamedAttribute)
    • coerceToChar

      public static String coerceToChar(String s, boolean isNamedAttribute)
    • coerceToCharacter

      public static String coerceToCharacter(String s, boolean isNamedAttribute)
    • coerceToPrimitiveDouble

      public static String coerceToPrimitiveDouble(String s, boolean isNamedAttribute)
    • coerceToDouble

      public static String coerceToDouble(String s, boolean isNamedAttribute)
    • coerceToPrimitiveFloat

      public static String coerceToPrimitiveFloat(String s, boolean isNamedAttribute)
    • coerceToFloat

      public static String coerceToFloat(String s, boolean isNamedAttribute)
    • coerceToInt

      public static String coerceToInt(String s, boolean isNamedAttribute)
    • coerceToInteger

      public static String coerceToInteger(String s, boolean isNamedAttribute)
    • coerceToPrimitiveShort

      public static String coerceToPrimitiveShort(String s, boolean isNamedAttribute)
    • coerceToShort

      public static String coerceToShort(String s, boolean isNamedAttribute)
    • coerceToPrimitiveLong

      public static String coerceToPrimitiveLong(String s, boolean isNamedAttribute)
    • coerceToLong

      public static String coerceToLong(String s, boolean isNamedAttribute)
    • getInputStream

      public static InputStream getInputStream(String fname, Jar jar, JspCompilationContext ctxt) throws IOException
      Throws:
      IOException
    • getInputSource

      public static InputSource getInputSource(String fname, Jar jar, JspCompilationContext ctxt) throws IOException
      Throws:
      IOException
    • getTagHandlerClassName

      public static String getTagHandlerClassName(String path, String urn, ErrorDispatcher err) throws JasperException
      Gets the fully-qualified class name of the tag handler corresponding to the given tag file path.
      Parameters:
      path - Tag file path
      urn - The tag identifier
      err - Error dispatcher
      Returns:
      Fully-qualified class name of the tag handler corresponding to the given tag file path
      Throws:
      JasperException - Failed to generate a class name for the tag
    • makeJavaPackage

      public static final String makeJavaPackage(String path)
      Converts the given path to a Java package or fully-qualified class name
      Parameters:
      path - Path to convert
      Returns:
      Java package corresponding to the given path
    • makeJavaIdentifier

      public static final String makeJavaIdentifier(String identifier)
      Converts the given identifier to a legal Java identifier
      Parameters:
      identifier - Identifier to convert
      Returns:
      Legal Java identifier corresponding to the given identifier
    • makeJavaIdentifierForAttribute

      public static final String makeJavaIdentifierForAttribute(String identifier)
      Converts the given identifier to a legal Java identifier to be used for JSP Tag file attribute names.
      Parameters:
      identifier - Identifier to convert
      Returns:
      Legal Java identifier corresponding to the given identifier
    • mangleChar

      public static final String mangleChar(char ch)
      Mangle the specified character to create a legal Java class name.
      Parameters:
      ch - The character
      Returns:
      the replacement character as a string
    • isJavaKeyword

      public static boolean isJavaKeyword(String key)
      Test whether the argument is a Java keyword.
      Parameters:
      key - The name
      Returns:
      true if the name is a java identifier
    • toJavaSourceTypeFromTld

      public static String toJavaSourceTypeFromTld(String type)
      Handles taking input from TLDs 'java.lang.Object' -> 'java.lang.Object.class' 'int' -> 'int.class' 'void' -> 'Void.TYPE' 'int[]' -> 'int[].class'
      Parameters:
      type - The type from the TLD
      Returns:
      the Java type
    • toJavaSourceType

      public static String toJavaSourceType(String type)
      Class.getName() return arrays in the form "[[[<et>", where et, the element type can be one of ZBCDFIJS or L<classname>;. It is converted into forms that can be understood by javac.
      Parameters:
      type - the type to convert
      Returns:
      the equivalent type in Java sources