我们前面在Action类中的执行方法默认是execute,其实我们action如果要执行不一定执行execute方法,我们可以通过设置struts.xml指定method属性来设置我们要执行的action类的方法。
<package name="default" namespace="/" extends="struts-default">
<action name="index" class="cn.bamn.struts.HomeAction" method="demo">
<result name="success">
/demo.jsp
</result>
</action>
</package>Code language: HTML, XML (xml)
然后action类中增加一个demo方法
public class HomeAction extends ActionSupport {
public String demo(){
return "success";
}
}Code language: PHP (php)
另外如果有更多的action的时候我们可能要继续添加多个action配置。这样会让人疯掉的。
幸亏struts提供另外一个动态方法调用。
比如我们现在后台模块中有一个分类管理的功能。那么我们可以这样配置,注意下面的result是区分大小写的。
<package name="admin" namespace="/admin" extends="struts-default">
<action name="category" class="cn.bamn.struts.CategoryAction">
<result name="index">
/admin/Category/index.jsp
</result>
<result name="add">
/admin/Category/add.jsp
</result>
<result name="del">
/admin/Category/del.jsp
</result>
</action>
</package>Code language: HTML, XML (xml)
然后我们添加一个CategoryAction 并且添加三个方法
package cn.bamn.struts;
import com.opensymphony.xwork2.ActionSupport;
public class CategoryAction extends ActionSupport {
public String index(){
return "index";
}
public String add(){
return "add";
}
public String del(){
return "del";
}
}Code language: JavaScript (javascript)
然后再webroot下面的admin里面添加一个category目录 然后添加三个jsp文件
分别是add.jsp index.jsp del.jsp
然后我们可以直接一个action配置通过
http://p50:8080/Struct6Demo/admin/category!del
http://p50:8080/Struct6Demo/admin/category!add
http://p50:8080/Struct6Demo/admin/category!index
后面的!号后面的就是categoryaction类中的三个方法。 随便加方法 一个action 多个result。
Previous: 06-理解Action
Next: 08-struts2使用通配符配置action