阅读量:0
在Struts2中,可以使用通配符来实现动态调用。通配符有两种:Ognl 和 ActionMapper。下面分别介绍这两种方法。
- 使用Ognl通配符
在Struts2中,可以使用Ognl通配符来动态调用Action。例如,如果你有一个名为user
的Action,你可以使用以下方法动态调用它:
<s:url action="%{user}" />
这里,%{user}
是一个Ognl表达式,它会根据当前上下文动态解析为user
Action的类名。
- 使用ActionMapper通配符
Struts2还支持使用ActionMapper通配符来实现动态调用。首先,需要在struts.xml
文件中配置ActionMapper:
<package name="default" extends="struts-default"> <action name="user" class="com.example.UserAction"> <result>/user.jsp</result> </action> <package name="dynamic" extends="struts-default"> <action name="*" class="com.example.DynamicActionMapper"> <param name="actionName">%{1}</param> <result>/dynamic/${1}.jsp</result> </action> </package> </package>
这里,我们创建了一个名为dynamic
的包,其中包含一个使用通配符的Action。%{1}
是一个ActionMapper通配符,它会根据请求的URL动态解析为Action的名称。
接下来,在JSP页面中,你可以使用以下方法动态调用这个Action:
<s:url action="%{dynamic/user}" />
这里,%{dynamic/user}
是一个Ognl表达式,它会根据当前上下文动态解析为dynamic
包下的user
Action。
总结一下,通过Struts2通配符实现动态调用的方法有两种:使用Ognl通配符和使用ActionMapper通配符。你可以根据自己的需求选择合适的方法。