Class JspRuntimeLibrary

java.lang.Object
org.apache.jasper.runtime.JspRuntimeLibrary

public class JspRuntimeLibrary extends Object
Bunch of util methods that are used by code generated for useBean, getProperty and setProperty.
  • Field Details

    • GRAAL

      public static final boolean GRAAL
      Indicates whether the code is running under GraalVM native image.
  • Method Details

    • getThrowable

      public static Throwable getThrowable(ServletRequest request)
      Returns the value of the jakarta.servlet.error.exception request attribute value, if present, otherwise the value of the jakarta.servlet.jsp.jspException request attribute value. This method is called at the beginning of the generated servlet code for a JSP error page, when the "exception" implicit scripting language variable is initialized.
      Parameters:
      request - The Servlet request
      Returns:
      the throwable in the error attribute if any
    • coerceToBoolean

      public static boolean coerceToBoolean(String s)
      Coerces a string to a boolean value.
      Parameters:
      s - The string to coerce
      Returns:
      the boolean value, or false if the string is null/empty
    • coerceToByte

      public static byte coerceToByte(String s)
      Coerces a string to a byte value.
      Parameters:
      s - The string to coerce
      Returns:
      the byte value, or 0 if the string is null/empty
    • coerceToChar

      public static char coerceToChar(String s)
      Coerces a string to a char value.
      Parameters:
      s - The string to coerce
      Returns:
      the char value, or 0 if the string is null/empty
    • coerceToDouble

      public static double coerceToDouble(String s)
      Coerces a string to a double value.
      Parameters:
      s - The string to coerce
      Returns:
      the double value, or 0 if the string is null/empty
    • coerceToFloat

      public static float coerceToFloat(String s)
      Coerces a string to a float value.
      Parameters:
      s - The string to coerce
      Returns:
      the float value, or 0 if the string is null/empty
    • coerceToInt

      public static int coerceToInt(String s)
      Coerces a string to an int value.
      Parameters:
      s - The string to coerce
      Returns:
      the int value, or 0 if the string is null/empty
    • coerceToShort

      public static short coerceToShort(String s)
      Coerces a string to a short value.
      Parameters:
      s - The string to coerce
      Returns:
      the short value, or 0 if the string is null/empty
    • coerceToLong

      public static long coerceToLong(String s)
      Coerces a string to a long value.
      Parameters:
      s - The string to coerce
      Returns:
      the long value, or 0 if the string is null/empty
    • coerce

      public static Object coerce(String s, Class<?> target)
      Coerces a string to the target type.
      Parameters:
      s - The string to coerce
      target - The target class
      Returns:
      the coerced value
    • convert

      public static Object convert(String propertyName, String s, Class<?> t, Class<?> propertyEditorClass) throws JasperException
      Converts a string value to the target type, using a property editor if specified.
      Parameters:
      propertyName - The property name
      s - The string value to convert
      t - The target class
      propertyEditorClass - The property editor class, or null
      Returns:
      the converted value
      Throws:
      JasperException - if conversion fails
    • introspect

      public static void introspect(Object bean, ServletRequest request) throws JasperException
      Sets bean properties from request parameters.
      Parameters:
      bean - The bean
      request - The servlet request
      Throws:
      JasperException - if setting a property fails
    • introspecthelper

      public static void introspecthelper(Object bean, String prop, String value, ServletRequest request, String param, boolean ignoreMethodNF) throws JasperException
      Sets a single bean property from a string value.
      Parameters:
      bean - The bean
      prop - The property name
      value - The string value
      request - The servlet request
      param - The parameter name
      ignoreMethodNF - Whether to ignore missing methods
      Throws:
      JasperException - if setting the property fails
    • toString

      public static String toString(Object o)
      Converts an object to its string representation.
      Parameters:
      o - The object
      Returns:
      the string representation
    • toString

      public static String toString(byte b)
      Converts a byte to its string representation.
      Parameters:
      b - The byte value
      Returns:
      the string representation
    • toString

      public static String toString(boolean b)
      Converts a boolean to its string representation.
      Parameters:
      b - The boolean value
      Returns:
      the string representation
    • toString

      public static String toString(short s)
      Converts a short to its string representation.
      Parameters:
      s - The short value
      Returns:
      the string representation
    • toString

      public static String toString(int i)
      Converts an int to its string representation.
      Parameters:
      i - The int value
      Returns:
      the string representation
    • toString

      public static String toString(float f)
      Converts a float to its string representation.
      Parameters:
      f - The float value
      Returns:
      the string representation
    • toString

      public static String toString(long l)
      Converts a long to its string representation.
      Parameters:
      l - The long value
      Returns:
      the string representation
    • toString

      public static String toString(double d)
      Converts a double to its string representation.
      Parameters:
      d - The double value
      Returns:
      the string representation
    • toString

      public static String toString(char c)
      Converts a char to its string representation.
      Parameters:
      c - The char value
      Returns:
      the string representation
    • createTypedArray

      public static void createTypedArray(String propertyName, Object bean, Method method, String[] values, Class<?> t, Class<?> propertyEditorClass) throws JasperException
      Create a typed array. This is a special case where params are passed through the request and the property is indexed.
      Parameters:
      propertyName - The property name
      bean - The bean
      method - The method
      values - Array values
      t - The class
      propertyEditorClass - The editor for the property
      Throws:
      JasperException - An error occurred
    • escapeQueryString

      public static String escapeQueryString(String unescString)
      Escape special shell characters.
      Parameters:
      unescString - The string to shell-escape
      Returns:
      The escaped shell string.
    • handleGetProperty

      public static Object handleGetProperty(Object o, String prop) throws JasperException
      Gets the value of a bean property.
      Parameters:
      o - The bean
      prop - The property name
      Returns:
      the property value
      Throws:
      JasperException - if getting the property fails
    • handleSetPropertyExpression

      public static void handleSetPropertyExpression(Object bean, String prop, String expression, PageContext pageContext, ProtectedFunctionMapper functionMapper) throws JasperException
      Sets a bean property from an EL expression.
      Parameters:
      bean - The bean
      prop - The property name
      expression - The EL expression
      pageContext - The page context
      functionMapper - The function mapper
      Throws:
      JasperException - if setting the property fails
    • handleSetProperty

      public static void handleSetProperty(Object bean, String prop, Object value) throws JasperException
      Sets a bean property to the given value.
      Parameters:
      bean - The bean
      prop - The property name
      value - The value to set
      Throws:
      JasperException - if setting the property fails
    • handleSetProperty

      public static void handleSetProperty(Object bean, String prop, int value) throws JasperException
      Sets a bean property to the given int value.
      Parameters:
      bean - The bean
      prop - The property name
      value - The value to set
      Throws:
      JasperException - if setting the property fails
    • handleSetProperty

      public static void handleSetProperty(Object bean, String prop, short value) throws JasperException
      Sets a bean property to the given short value.
      Parameters:
      bean - The bean
      prop - The property name
      value - The value to set
      Throws:
      JasperException - if setting the property fails
    • handleSetProperty

      public static void handleSetProperty(Object bean, String prop, long value) throws JasperException
      Sets a bean property to the given long value.
      Parameters:
      bean - The bean
      prop - The property name
      value - The value to set
      Throws:
      JasperException - if setting the property fails
    • handleSetProperty

      public static void handleSetProperty(Object bean, String prop, double value) throws JasperException
      Sets a bean property to the given double value.
      Parameters:
      bean - The bean
      prop - The property name
      value - The value to set
      Throws:
      JasperException - if setting the property fails
    • handleSetProperty

      public static void handleSetProperty(Object bean, String prop, float value) throws JasperException
      Sets a bean property to the given float value.
      Parameters:
      bean - The bean
      prop - The property name
      value - The value to set
      Throws:
      JasperException - if setting the property fails
    • handleSetProperty

      public static void handleSetProperty(Object bean, String prop, char value) throws JasperException
      Sets a bean property to the given char value.
      Parameters:
      bean - The bean
      prop - The property name
      value - The value to set
      Throws:
      JasperException - if setting the property fails
    • handleSetProperty

      public static void handleSetProperty(Object bean, String prop, byte value) throws JasperException
      Sets a bean property to the given byte value.
      Parameters:
      bean - The bean
      prop - The property name
      value - The value to set
      Throws:
      JasperException - if setting the property fails
    • handleSetProperty

      public static void handleSetProperty(Object bean, String prop, boolean value) throws JasperException
      Sets a bean property to the given boolean value.
      Parameters:
      bean - The bean
      prop - The property name
      value - The value to set
      Throws:
      JasperException - if setting the property fails
    • capitalize

      public static String capitalize(String name)
      Reverse of Introspector.decapitalize.
      Parameters:
      name - The name
      Returns:
      the capitalized string
    • getWriteMethod

      public static Method getWriteMethod(Class<?> beanClass, String prop) throws JasperException
      Gets the write method (setter) for a bean property.
      Parameters:
      beanClass - The bean class
      prop - The property name
      Returns:
      the write method
      Throws:
      JasperException - if the property or write method cannot be found
    • getReadMethod

      public static Method getReadMethod(Class<?> beanClass, String prop) throws JasperException
      Gets the read method (getter) for a bean property.
      Parameters:
      beanClass - The bean class
      prop - The property name
      Returns:
      the read method
      Throws:
      JasperException - if the property or read method cannot be found
    • getValueFromBeanInfoPropertyEditor

      public static Object getValueFromBeanInfoPropertyEditor(Class<?> attrClass, String attrName, String attrValue, Class<?> propertyEditorClass) throws JasperException
      Gets a value using a bean info property editor.
      Parameters:
      attrClass - The attribute class
      attrName - The attribute name
      attrValue - The attribute value as a string
      propertyEditorClass - The property editor class
      Returns:
      the converted value
      Throws:
      JasperException - if conversion fails
    • getValueFromPropertyEditorManager

      public static Object getValueFromPropertyEditorManager(Class<?> attrClass, String attrName, String attrValue) throws JasperException
      Gets a value using the property editor manager.
      Parameters:
      attrClass - The attribute class
      attrName - The attribute name
      attrValue - The attribute value as a string
      Returns:
      the converted value
      Throws:
      JasperException - if conversion fails
    • getContextRelativePath

      public static String getContextRelativePath(ServletRequest request, String relativePath)
      Convert a possibly relative resource path into a context-relative resource path that starts with a '/'.
      Parameters:
      request - The servlet request we are processing
      relativePath - The possibly relative resource path
      Returns:
      an absolute path
    • include

      public static void include(ServletRequest request, ServletResponse response, String relativePath, JspWriter out, boolean flush) throws IOException, ServletException
      Perform a RequestDispatcher.include() operation, with optional flushing of the response beforehand.
      Parameters:
      request - The servlet request we are processing
      response - The servlet response we are processing
      relativePath - The relative path of the resource to be included
      out - The Writer to whom we are currently writing
      flush - Should we flush before the include is processed?
      Throws:
      IOException - if thrown by the included servlet
      ServletException - if thrown by the included servlet
    • URLEncode

      public static String URLEncode(String s, String enc)
      URL encodes a string, based on the supplied character encoding.
      Parameters:
      s - The String to be URL encoded.
      enc - The character encoding
      Returns:
      The URL encoded String
    • startBufferedBody

      public static JspWriter startBufferedBody(PageContext pageContext, BodyTag tag) throws JspException
      Starts a buffered body for a tag that supports body content.
      Parameters:
      pageContext - The page context
      tag - The body tag
      Returns:
      the JspWriter for the body content
      Throws:
      JspException - if starting the buffered body fails
    • releaseTag

      public static void releaseTag(Tag tag, InstanceManager instanceManager)
      Releases a tag and destroys its instance.
      Parameters:
      tag - The tag to release
      instanceManager - The instance manager
    • nonstandardSetTag

      public static void nonstandardSetTag(PageContext pageContext, String var, Object value, int scope)
      This method parallels the logic of SetSupport.doEndTag().
      Parameters:
      pageContext - pageContext
      var - name of the variable
      value - value to store
      scope - scope