在Struts2中,可以使用通配符來實現動態調用。通配符有兩種:Ognl 和 ActionMapper。下面分別介紹這兩種方法。
在Struts2中,可以使用Ognl通配符來動態調用Action。例如,如果你有一個名為user
的Action,你可以使用以下方法動態調用它:
<s:url action="%{user}" />
這里,%{user}
是一個Ognl表達式,它會根據當前上下文動態解析為user
Action的類名。
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通配符。你可以根據自己的需求選擇合適的方法。