你需要
Advanced Wildcard Mappings。
从文档中:Struts2的高级通配符映射:
高级通配符
从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}" > <result>/books/content.jsp</result> </action></package>在此示例中,如果
/fiction/content/Frankenstein请求了url ,则BookAction的字段“type”将设置为“fiction”,而字段“title”将设置为“Frankenstein”。
如果使用Struts2-Convention-Plugin,您的示例将是:
@Action(value="/books/{author}/{year}")public class Books extends ActionSupport { private String author; private Integer year; public String execute(){ if (noDataFound) return NONE; return SUCCESS }}
如果您需要在
prepare()method中使用这些参数,请阅读此问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)