Action执行的时候并不一定要执行execute方法。
可以在配置文件中配置Action的时候用method=来指定执行哪个方法也可以在url地址中动态指定(动态方法调用DMI)(推荐),前者会产生太多的action,所以不推荐使用。
struts2.xml中的配置:
<action name="hello" class="test.struts2.TestAction">
<result>/Hello.jsp</result>
<result name="add">/add.jsp</result> name表示方法返回的结果的字符串相对应。
<result name="update">/update.jsp</result>
</action>
jsp页面中的代码:
<a href="test/hello">hello</a><br>
<a href="test/hello!add">hello!add</a><br> !表示代码的动态调用,我要使用该action中的哪个方法。
<a href="test/hello!a">hello!update</a>
action中的代码:
public class TestAction extends ActionSupport {
public String execute() {
return "success";
}
public String add() { //add() 对应DMI的!号后的字符就是方法名
return "add"; //返回的add对应struts2.xml中的result的name值,找到相对应的结果。
}
public String update() {
return "update";
}
}