繁体   English   中英

如何将“/ user / {user_id}”之类的网址映射到特定操作?

[英]How to map URL like “/user/{user_id}” to a specific action?

如何将正则表达式数字类(\\d)映射到动作?

例:

/user/123 , /user/345,  /user/546456 ....

使用高级通配符

高级通配符

从2.1.9+开始,可以在动作名称中定义正则表达式。 要使用这种形式的通配符,必须设置以下常量:

 <constant name="struts.enable.SlashesInActionNames" value="true"/> <constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/> <constant name="struts.patternMatcher" value="regex" /> 

正则表达式可以有两种形式,最简单的是{FIELD_NAME} ,在这种情况下,操作中具有FIELD_NAME的字段将填充匹配的文本,例如:

 <package name="books" extends="struts-default" namespace="/"> <action name="/{type}/content/{title}" class="example.BookAction"> <result>/books/content.jsp</result> </action> </package> 

在此示例中,如果请求url /fiction/content/Frankenstein ,则BookAction的字段“ type ”将设置为“ fiction ”,字段“ title ”将设置为“ Frankenstein ”。

请注意,如果您在prepare()方法中需要这些参数,则需要一个调整好的拦截器堆栈

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM