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最好也用模块来进行命名
定义自己的Action
1.具体视图的返回可以由用户自己定义的Action来决定
2.具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容
3.具体Action的实现(3种)可以是一个普通的java类,里面有public String execute方法即可;或者实现Action接口;但最常用的是ActionSupport继承,好处是可以直接使用Struts2封装好的方法
4.stuts1和struts2一个很重要的区别是,struts1每次访问时,都是同一个对象,可能会产生同步访问的问题;而struts2每次访问时,都是new一个新的对象,无此问题。
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】struts2配置中Action的name和package的name和namespace有什么作用 ?
- MyEclispe配置struts2出现There is no Action mapped for namespace [/] and action name [user_all]...问题处理
- struts2 在拦截器进行注入(依据Action是否实现自己定义接口)
- 【struts2】struts2配置中Action的name和package的name和namespace有什么作用 ?
- struts2中Action的name 和package的name和namespace是什么作用
- Struts2-Action-7-系列问题(Action中的web元素访问)
- 使用Struts2动态方法调用时(DMI)出现There is no Action mapped for namespace [/user] and action name [user!add] 问题
- struts2配置中Action的name 和package的name和namespace作用
- Struts2中关于"There is no Action mapped for namespace / and action name"的问题
- Struts2-Action-5-系列问题(接受用户输入(3种方式))
- Struts2-Action-6-系列问题(乱码问题解决、简单数据校验)
- 新手学习Struts2遇到的问题:There is no Action mapped for namespace / and action name . - [unknown location]
- Struts:关于struts2中namespace和s:form action和form action 路径问题
- Struts2-Action-4-系列问题(路径、调用Action的自定义方法、通配符)
- Struts2 Action中命名空间(namespace)作用
- struts2中Action的name 和package的name和namespace是什么作用
- Struts2中DMI(动态方法调用)的错误问题(There is no Action mapped for namespace [/xxx] and action name [xxx!yyy] a)
- Struts2-Action-8-系列问题(包含模块配置文件、defaultAction)
- struts2中Action类如何获得作用域对象
- Struts2中action之间传参中文乱码的问题