L'utilisation de # (dièse)
OGNL est utilisé pour faire référence à des objets dans le ActionContext comme suit:
-
objectName
: objet dans la ValueStack (par défaut/objet racine dans la OGNL contexte), comme une Action de la propriété
-
#objectName
: objet dans la ActionContext mais à l'extérieur de la ValueStack, plus précisément...
-
#objectName
: ActionContext objet qui a été créé à l'aide de la Struts2 balises de données avec l'action par défaut de la portée (par exemple, <s:set name="foo" value="'Testing'" />
, référencé par <s:property value="#foo" />
)
-
#parameters.objectName
: paramètre de la requête
-
#request.objectName
: demande d'étendue de l'attribut
-
#session.objectName
: session dont l'étendue est un attribut
-
#application.objectName
: portée application de l'attribut
-
#attr.objectName
: attribut dans la page, request, session, ou la portée d'application (recherché dans cet ordre)
L'étendue de la carte des références ci-dessus (paramètres de la demande, la session, et la demande) ne peut être effectué de deux façons:
-
#scopeName.objectName
ou
#scopeName['objectName']
L'utilisation de % (pour cent)
%{ OGNL expression }
est utilisé pour forcer OGNL évaluation d'un attribut qui serait normalement être interprété comme une Chaîne littérale.
Exemple: <s:property value="myProperty" default="%{myDynamicDefaultValue}" />
Utilisation de @ (arobase)
Le symbole @ est utilisé pour faire référence à des propriétés et de méthodes statiques. Notez que vous devrez peut-être activer cette fonction dans votre Struts2 propriétés: struts.ognl.allowStaticMethodAccess=true
Exemples:
@my.package.ClassName@MY_STATIC_PROPERTY
@my.package.ClassName@myStaticMethod
Utilisation de $ (signe dollar)
Struts2 OGNL ne pas faire usage spécial de la signe de dollar. Cependant, il peut être utilisé pour évaluer la normale JSTL expressions. Par exemple:
Struts2: <h1><s:property value="#pageTitle" /></h1>
(est équivalent à...)
JSTL: <h1>${pageTitle}</h1>