Question: ```
Browser("Online Exchange login").Page("Online Exchange login").Exist(10)

```

Following lines are not included in the source code:

My question is : Will `Exist(10)` method, in above line of code, verifies the existence of all Child Objects (if any) of `Page("Online Exchange login")` object before declaring its existence?

Answer: 
**Use of # (pound sign)**

OGNL is used to refer to objects in the ActionContext as follows:

* `objectName`: object in the ValueStack (default/root object in the OGNL context), such as an Action property
* `#objectName`: object in the ActionContext but outside of the ValueStack, specifically...
	+ `#objectName`: ActionContext object that has been created using the Struts2 data tags with the default action scope (e.g., `<s:set name="foo" value="'Testing'" />`, referenced by `<s:property value="#foo" />`)
	+ `#parameters.objectName`: request parameter
	+ `#request.objectName`: request-scoped attribute
	+ `#session.objectName`: session-scoped attribute
	+ `#application.objectName`: application-scoped attribute
	+ `#attr.objectName`: attribute in page, request, session, or application scope (searched in that order)

The scoped map references above (parameters, request, session, and application) can be made one of two ways:

* `#scopeName.objectName` or
* `#scopeName['objectName']`

**Use of % (percent sign)**

`%{ OGNL expression }` is used to force OGNL evaluation of an attribute that would normally be interpreted as a String literal.

Example: `<s:property value="myProperty" default="%{myDynamicDefaultValue}" />`

**Use of @ (at sign)**

The @ symbol is used to make references to static properties and methods. Note that you may need to enable this in your Struts2 properties: `struts.ognl.allowStaticMethodAccess=true`

Examples:

```
@my.package.ClassName@MY_STATIC_PROPERTY
@my.package.ClassName@myStaticMethod

```

**Use of $ (dollar sign)**

Struts2 OGNL does not make special use of the dollar sign. However, it can be used to evaluate normal JSTL expressions. For example:

Struts2: `<h1><s:property value="#pageTitle" /></h1>`  

*(is equivalent to...)*  

JSTL: `<h1>${pageTitle}</h1>`
Just to complete the @Devon Biere ...

**Use of $ (dollar sign)**

You can use `${}` in your resource files too. The struts will automatically use OGNL to parse `${}`. For example

```
sample.foo.bar=This is some ${someProperty} //If the someProperty is in valueStack
sample.welcome.message=Welcome dear ${#session.CurrentUser.farsiFirstName}

```

Please note the `$` sign here is just a trigger which ask struts to evaluate the string against OGNL, please do not confuse it with `${}` in JSTL

[Struts 2 Dynamic message with OGNL](https://stackoverflow.com/questions/32411365/struts-2-dynamic-message-with-ognl)