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: 
The framework uses a standard naming context to evaluate OGNL expressions. The top level object dealing with OGNL is a Map (usually referred as a context map or context). OGNL has a notion of there being a root (or default) object within the context. In expression, the properties of the root object can be referenced without any special "marker" notion. References to other objects are marked with a pound sign (#).

The framework sets the OGNL context to be our ActionContext, and the value stack to be the OGNL root object. (The value stack is a set of several objects, but to OGNL it appears to be a single object.) Along with the value stack, the framework places other objects in the ActionContext, including Maps representing the application, session, and request contexts. These objects coexist in the ActionContext, alongside the value stack (our OGNL root).

```
                 |
                 |--application
                 |
                 |--session
   context map---|
                 |--value stack(root)
                 |
                 |--request
                 |
                 |--parameters
                 |
                 |--attr (searches page, request, session, then application scopes)

```

refer this for more details

[OGNL basis](http://struts.apache.org/2.0.11.1/docs/ognl.html)

basically struts2 put object value Stack as top most object and OGNL is used to refer them.root object can be referenced without any special "marker" or with `%` while References to other objects are marked with a pound sign (#). # is basically used to refer object/values from Application/Session etc.
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)