API de l’évaluateur d’expression côté serveur et personnalisation

Vous pouvez personnaliser la fonctionnalité de ce module en définissant votre propre bean d’évaluateur d’expression. En règle générale, vous créez une instance DefaultEXPEvaluator dans laquelle vous injectez les implémentations du résolveur de variable et du mappeur de fonction. Pour créer votre propre bean d’évaluateur d’expression :
  1. Créez un regroupement OSGi personnalisé.

  2. Configurez le contexte Spring pour le regroupement.

  3. Vérifiez que les classes EXM et EL JSP sont importées dans le manifeste du regroupement. Les packages suivants sont requis pour Expression Manager :
    • com.adobe.exm.exception

    • com.adobe.exm.expeval

    • javax.servlet.jsp.el

  4. Dans le contexte Spring, définissez un bean correspondant à une instance de la classe com.adobe.exm.expeval.DefaultEXPEvaluator ou d’une extension personnalisée de celle-ci. Configurez-le avec un résolveur de variable et un mappeur de fonction comme suit :
    <bean id="<expevaluator_id> " class="com.adobe.exm.expeval.DefaultEXPEvaluator" > 
        <lookup-method name="createVariableResolver" bean="<variable_resolver_bean_id>"/> 
        <property name="functionMapper" ref="<function_mapper_bean_id>"/> 
    </bean>
  5. Assurez-vous que le résolveur de variable est une instance d’une classe qui implémente l’interface com.adobe.exm.expeval.EXPVariableResolver. Le bloc de création Expression Manager fournit une implémentation simple basée sur un mappage, qui est probablement utilisable uniquement pour les utilisations les plus triviales. Toutefois, le bloc de création Data Dictionary fournit une implémentation de résolveur de variable plus mature, pouvant être utilisée dans les cas où les valeurs des variables sont tirées de propriétés des instances Data Dictionary.

  6. Le bean du mappeur de fonction doit être une instance d’une classe qui implémente l’interface javax.servlet.jsp.el.FunctionMapper. Le bloc de création Expression Manager fournit une implémentation de mappeur de fonction (exposée comme service OSGi) qui agrège les fonctions personnalisées, exportées par d’autres regroupements déployés dans le même conteneur CRX à l’aide de l’auto-découverte. Pour utiliser cette implémentation de mappeur de fonction, importez-la en tant que bean Spring à l’aide de BluePrint, comme suit :
    <bp:reference id="<function_mapper_bean_id>" 
        interface="javax.servlet.jsp.el.FunctionMapper" 
        filter="(exm.function.mapper.id=lc.exm.compositeFunctionMapper)"/>
  7. Injectez le bean de l’évaluateur d’expression dans votre propre bean personnalisé et utilisez-le pour l’évaluation de l’expression à l’aide de l’une des API evaluate*().