您的位置:首页 > 编程语言 > Java开发

Struts2-Action-3-系列问题(作用、namespace、定义自己的action)

2017-04-17 22:20 465 查看
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.0
相关文章推荐