This is the example project referred to in the
Struts 2 documentation, Exclude Params tutorial.
See:  http://struts.apache.org.

To build the application's war file run mvn clean package
from the project's root folder.

The war file is created in the target sub-folder.

Copy the war file to your Servlet container (e.g. Tomcat, GlassFish) and 
then startup the Servlet container.

In a web browser go to:  http://localhost:8080/exclude_parameters/index.action.

You should see a web page with Welcome to Struts 2!

The application writes log messages to the console.  In Tomcat the 
log messages can be found in catalina.out ([tomcat home]/logs).

