ok, first thing first. ActionMessage() signature(s) takes the first one as a 'key' from the properties resource when you construct it with just a string, if you don't want to use the ApplicationResources.properties, you must construct it using ActionMessage("My Message", false);
when you add the error messages inside your action classes, remember to call the saveMessages(request, messages) method before you forward.
there's no need for an exception handler to recreate and error message just to then forward again. you can simply use the default
struts error handler and define the exceptions in the struts-config.xml. exceptions can be defined globally or locally (inside an action mapping).
using resource props key is required for this to work. setting it up is very minimal and good practice, why not just do it?
the 'path' can be an action, tiles definition (above), or a JSP, as long as your target contains html:errors, the errors will display. it's trivial, but make sure you include the tag-lib declaration, a very frequent mistake.