org.apache.struts2.jasper.runtime

## Class ProtectedFunctionMapper

- java.lang.Object
- - javax.el.FunctionMapper
  - - org.apache.struts2.jasper.runtime.ProtectedFunctionMapper

- All Implemented Interfaces:
    javax.servlet.jsp.el.FunctionMapper

      public final class ProtectedFunctionMapper
      extends javax.el.FunctionMapper
      implements javax.servlet.jsp.el.FunctionMapper

  Maps EL functions to their Java method counterparts. Keeps the actual Method objects protected so that JSP pages can't indirectly do reflection.
  Author:
    Mark Roth, Kin-man Chung

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static ProtectedFunctionMapper` | `getInstance()` Generated Servlet and Tag Handler implementations call this method to retrieve an instance of the ProtectedFunctionMapper.
    `static ProtectedFunctionMapper` | `getMapForFunction(String fnQName, Class c, String methodName, Class[] args)` Creates an instance for this class, and stores the Method for the given EL function prefix and name.
    `void` | `mapFunction(String fnQName, Class c, String methodName, Class[] args)` Stores a mapping from the given EL function prefix and name to the given Java method.
    `Method` | `resolveFunction(String prefix, String localName)` Resolves the specified local name and prefix into a Java.lang.Method.

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

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

- - ### Method Detail

    - #### getInstance

          public static ProtectedFunctionMapper getInstance()

      Generated Servlet and Tag Handler implementations call this method to retrieve an instance of the ProtectedFunctionMapper. This is necessary since generated code does not have access to create instances of classes in this package.
      Returns:
        A new protected function mapper.

    - #### mapFunction

          public void mapFunction(String fnQName,
                         Class c,
                         String methodName,
                         Class[] args)

      Stores a mapping from the given EL function prefix and name to the given Java method.
      Parameters:
        `fnQName` - The EL function qualified name (including prefix)
        `c` - The class containing the Java method
        `methodName` - The name of the Java method
        `args` - The arguments of the Java method
      Throws:
        `RuntimeException` - if no method with the given signature could be found.

    - #### getMapForFunction

          public static ProtectedFunctionMapper getMapForFunction(String fnQName,
                                                  Class c,
                                                  String methodName,
                                                  Class[] args)

      Creates an instance for this class, and stores the Method for the given EL function prefix and name. This method is used for the case when there is only one function in the EL expression.
      Parameters:
        `fnQName` - The EL function qualified name (including prefix)
        `c` - The class containing the Java method
        `methodName` - The name of the Java method
        `args` - The arguments of the Java method
      Returns:
        function mapper
      Throws:
        `RuntimeException` - if no method with the given signature could be found.

    - #### resolveFunction

          public Method resolveFunction(String prefix,
                               String localName)

      Resolves the specified local name and prefix into a Java.lang.Method. Returns null if the prefix and local name are not found.
      Specified by:
        `resolveFunction` in interface `javax.servlet.jsp.el.FunctionMapper`
      Specified by:
        `resolveFunction` in class `javax.el.FunctionMapper`
      Parameters:
        `prefix` - the prefix of the function
        `localName` - the short name of the function
      Returns:
        the result of the method mapping. Null means no entry found.

Copyright © 2000–2018 Apache Software Foundation. All rights reserved.