特点:在struts.xml配置中,不指定method,由url动态决定具体调用Action类的哪个方法。
一、配置文件
index.jsp
success.jsp
exit.jsp
fail.jsp
二、url组成:actionName!methodName.action
<s:a href=“user!logout.action”>退出</s:a>
默认条件下,浏览器输入indexAction!execute.action,就会执行indexAction类里的execute方法,这样虽然方便,但安全隐患,可以通过url执行Action中的任意方法。
通过禁用动态方法。
通过通配符实现动态调用
1 通过action元素的method属性来指定Action执行时调用的方法
Name=”User”/”User”/”User” method=“{num}”,num代表第几次匹配到的值
如果匹配到,就执行对应方法;如果未匹配到会执行execute()方法,如果execute()方法没有重写,会调用继承的父类的execute()方法,默认返回”success”。
<action name="*User" class="action.UserAction" method="{1}" >
<result name="input">index.jsp</result>
<result name="success">success.jsp</result>
<result name="exit">index.jsp</result>
<result name="error">fail.jsp</result>
</action>
2更改前台jsp页面,User前为要执行的方法名
<s:form action="loginUser" theme="simple">
用户名:<s:textfield name="user.userName"></s:textfield><br>
年龄:<s:textfield name="user.age"></s:textfield><br>
<s:submit value="提交"></s:submit>
</s:form>