- Action入门:
Struts作用: 把请求和视图分开 Namespace
namespace决定了action的访问路径,默认为“”,表示可以接收所有路径的action
namespace可以写为/,或者/xx,或者/xx/yy,对应的action访问路径为/index.action,/xx/index.action,/xx/yy/index.action
namespace最好也用模块来进行命名<!--namespace和package(如果action的name相同,则可以用package来区分,与java中的包含义相似)一般用模块来命名--> <--http://localhost:8080/hello/front/a/b/index.action--> <package name="front" namespace="/front" extends="struts-default"> <action name="index"> <result>/front.jsp</result> </action> </package> <!--namespace不写 相当于namespace="" 只要访问路径包括index.action则都访问--> <--http://localhost:8080/hello/a/b/cc/ddd/index.action--> <package name="main" extends="struts-default"> <action name="index"> <result>/main.jsp</result> </action> </package>- 定义自己的Action
1.具体视图的返回可以由用户自己定义的Action来决定
2.具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容
3.具体Action的实现(3种)可以是一个普通的java类,里面有public String execute方法即可;或者实现Action接口;但最常用的是ActionSupport继承,好处是可以直接使用Struts2封装好的方法
4.stuts1和struts2一个很重要的区别是,struts1每次访问时,都是同一个对象,可能会产生同步访问的问题;而struts2每次访问时,都是new一个新的对象,无此问题。
<!--struts.xml中-->
<package name="myAction" namespace="/myAction" extends="struts-default">
<action name="myaction" class="com.IndexAction3">
<result>/front.jsp</result>
</action>
</package>
// action中
//方法1
public class IndexAction1 {
public String execute(){
System.out.println("indexAction1");
return "success";
}
}
//方法2
public class IndexAction2 implements Action{
public String execute() throws Exception {
System.out.println("indexAction2");
return SUCCESS;
}
}
//方法3 只记住这种
import com.opensymphony.xwork2.ActionSupport;
public class IndexAction3 extends ActionSupport{
@Override
public String execute() throws Exception {
System.out.println("IndexAction3");
return "success";
}
}
本文介绍Struts2框架中的Action概念,包括如何通过命名空间(namespace)来组织Action,以及三种定义Action的方法:普通Java类、实现Action接口、继承ActionSupport。
6705

被折叠的 条评论
为什么被折叠?



