If you want to use named patterns in wildcard mapping then you should configure following in the struts.xml
:
<constant name="struts.enable.SlashesInActionNames" value="true"/>
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
<constant name="struts.patternMatcher" value="regex"/>
now assume com.example.actions.ViewProfileAction
bean has a property username
, and method execute
that returns a SUCCESS
result. Then you can map the action in the root namespace "/"
configured to your package.
<action name="{username}" class="com.example.actions.ViewProfileAction">
<result>/WEB-INF/jsp/profile.jsp</result>
</action>
you can get the name in the JSP using OGNL
<s:property value="username"/>
Also note that you should deploy to the root context to have
your.domain.com/username
mapped to your action.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…