如何通过Struts2通配符实现动态调用

avatar
作者
猴君
阅读量:0

在Struts2中,可以使用通配符来实现动态调用。通配符有两种:OgnlActionMapper。下面分别介绍这两种方法。

  1. 使用Ognl通配符

在Struts2中,可以使用Ognl通配符来动态调用Action。例如,如果你有一个名为user的Action,你可以使用以下方法动态调用它:

<s:url action="%{user}" /> 

这里,%{user}是一个Ognl表达式,它会根据当前上下文动态解析为user Action的类名。

  1. 使用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通配符。你可以根据自己的需求选择合适的方法。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!