DarkHorse's answer is not entirely accurate. There are two values that are very similar but work very differently:
<constant name="struts.action.extension" value=","/>
<constant name="struts.action.extension" value=""/>
You almost certainly want the first option, which includes a comma. This tells Struts that the action extension is empty. It also means that Struts will not attempt to match any requests that do have an extension, such as *.css, *.js, etc.
The second option tells Struts that there shouldn't be an action extension, but it also says that you want Struts to match every request. The only possible benefit I can think of to this is if you wanted to include file extensions in your action mapping, such as the following:
<action name="robots.txt" class="...">
...
</action>
Also, to exclude requests from the Struts filter is to use the struts.action.excludePattern
property, as described here. Do not rely on an interceptor for this, since interceptors only run once the framework has located a suitable action to map to.