I\'m currently playing around with my Struts2 config for wildcard testing and I\'m stuck with this one.
You are using slashes in action name, that incorrectly works with wildcard mapper. As I said in the linked answer, the best pattern matcher in this case is the regex
pattern matcher.
<constant name="struts.patternMatcher" value="regex"/>
See Advanced Wildcards.
<action name="/{blogSiteUrl}/{test}" class="checkBlogUrl" method="testing">
<result name="success">/WEB-INF/jsp/cmsPages/index.jsp</result>
</action>
<action name="/{blogSiteUrl}/postPreview1" class="blogPostAction" method="test">
<result name="success">/WEB-INF/jsp/cmsPages/templatePicker.jsp</result>
</action>
About docs for wildcard mapper. Lets look at the example blank application:
<package name="example" namespace="/example" extends="default">
<action name="HelloWorld" class="example.HelloWorld">
<result>/WEB-INF/jsp/example/HelloWorld.jsp</result>
</action>
<action name="Login_*" method="{1}" class="example.Login">
<result name="input">/WEB-INF/jsp/example/Login.jsp</result>
<result type="redirectAction">Menu</result>
</action>
<action name="*" class="example.ExampleSupport">
<result>/WEB-INF/jsp/example/{1}.jsp</result>
</action>
<!-- Add actions here -->
</package>
So URLs will be matched in the order:
http://localhost:8080/example/HelloWorld
http://localhost:8080/example/Login_input
http://localhost:8080/example/Register
I would say that more specific mapping goes before less specific/common mapping and it wins because it's found first in the order of action configs. Everything that doesn't match the ordered configs fall into last mapping which is less specific.