struts2 自定义的action继承了actionsupport后,方法名称为什么可以自定义,而不是execute?

gongtaixiang 2010-07-16 04:06:53
在struts2中,为什么当我们自定义一个action,只要继承了actionSupport了,就可以改变那个方法的名字?按照java的特性,自定义的action的方法名,应该是和父类actionSupport中的execute()方法一样啊?子类只是重写父类的execute()方法,名称应该不可以改变啊?各位高手,请解释一下,原因是什么啊?
...全文
1185 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
z_zhang1214 2012-11-12
  • 打赏
  • 举报
回复
之前没有继承ActionSupport,但是加上继承了之后No result defined for action com.wb.action.loginAction and result success有错误啊
jumpheightway 2012-05-24
  • 打赏
  • 举报
回复
楼主呀,你难道不知道什么叫自定义
cxw3152 2012-05-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
你并不太了解Strus2吧,Struts2的action如果一个普通类POJO,不继承者Struts2的任何类、接口,但只要有execute(),那么这个POJO也就是个Action
[/Quote]
顶一个
itopme 2012-05-24
  • 打赏
  • 举报
回复
受益匪浅. 好久没弄s2了看了这层楼,算是唤起了我的记忆啊。。
rodccc 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cnff2007 的回复:]
struts2中并没有硬性规定请求调用的方法为execute(),只要方法返回的是一个String就能调用。而一般情况使用execute()是因为大多数人是重struts中转过来的,遵循了struts的习惯。请求具体调用哪个方法,是在配置文件中配置的。
另外补充一点,struts2中的action不需要继承任何类或任何接口就能调用,但actionSupport中提供了一些常用功能,继承它以后可以……
[/Quote]
顶你
DBMS_TTT 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cnff2007 的回复:]
struts2中并没有硬性规定请求调用的方法为execute(),只要方法返回的是一个String就能调用。而一般情况使用execute()是因为大多数人是重struts中转过来的,遵循了struts的习惯。请求具体调用哪个方法,是在配置文件中配置的。
另外补充一点,struts2中的action不需要继承任何类或任何接口就能调用,但actionSupport中提供了一些常用功能,继承它以后可以……
[/Quote]顶,讲的透彻
coolboybest 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cnff2007 的回复:]

struts2中并没有硬性规定请求调用的方法为execute(),只要方法返回的是一个String就能调用。而一般情况使用execute()是因为大多数人是重struts中转过来的,遵循了struts的习惯。请求具体调用哪个方法,是在配置文件中配置的。
另外补充一点,struts2中的action不需要继承任何类或任何接口就能调用,但actionSupport中提供了一些常用功能,继承它以后可……
[/Quote]

就是这个,struts2中Action中的写法,你好好看看
Spring89 2010-10-08
  • 打赏
  • 举报
回复
你并不太了解Strus2吧,Struts2的action如果一个普通类POJO,不继承者Struts2的任何类、接口,但只要有execute(),那么这个POJO也就是个Action
BearKin 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 gongtaixiang 的回复:]
在struts2中,为什么当我们自定义一个action,只要继承了actionSupport了,就可以改变那个方法的名字?按照java的特性,自定义的action的方法名,应该是和父类actionSupport中的execute()方法一样啊?子类只是重写父类的execute()方法,名称应该不可以改变啊?各位高手,请解释一下,原因是什么啊?
[/Quote]

不可能一个Action类里只定义一个方法 execute的方式过时了
fengzheng2474 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 forchase 的回复:]
你大概还没完全熟悉struts2,execute只是父类的一个方法而已,你可以在你的Action里写N个自定义名字的方法而不需要去理会父类中的方法名,execute方法跟其他自定义方法的一个小的区别就是,你在struts.xml配置文件中,例如

XML code

<package name="p" extends="struts-default" namespace="/">
<ac……
[/Quote]
同意
happyfmy 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cnff2007 的回复:]

struts2中并没有硬性规定请求调用的方法为execute(),只要方法返回的是一个String就能调用。而一般情况使用execute()是因为大多数人是重struts中转过来的,遵循了struts的习惯。请求具体调用哪个方法,是在配置文件中配置的。
另外补充一点,struts2中的action不需要继承任何类或任何接口就能调用,但actionSupport中提供了一些常用功能,继承它以后可……
[/Quote]

+1
forchase 2010-07-16
  • 打赏
  • 举报
回复
你大概还没完全熟悉struts2,execute只是父类的一个方法而已,你可以在你的Action里写N个自定义名字的方法而不需要去理会父类中的方法名,execute方法跟其他自定义方法的一个小的区别就是,你在struts.xml配置文件中,例如

<package name="p" extends="struts-default" namespace="/">
<action name="actionName" class="MyAction">
<result>/index.jsp</result>
</action>

访问"MyAction"时只需要用"/actionName"这个路径来访问,但是你若自定义了一个方法,如"update"

public String void update(){
return SUCCESS;
}

你有几种访问此方法的办法:
1.使用这样的访问路径:/actionName!update;

2配置struts.xml


<action name="up" class="MyAction" method="update">
<result>/index.jsp</result>
</action>

访问路径:/up

simaa0106 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cnff2007 的回复:]
struts2中并没有硬性规定请求调用的方法为execute(),只要方法返回的是一个String就能调用。而一般情况使用execute()是因为大多数人是重struts中转过来的,遵循了struts的习惯。请求具体调用哪个方法,是在配置文件中配置的。
另外补充一点,struts2中的action不需要继承任何类或任何接口就能调用,但actionSupport中提供了一些常用功能,继承它以后可以……
[/Quote]
说的太好了。
cnff2007 2010-07-16
  • 打赏
  • 举报
回复
struts2中并没有硬性规定请求调用的方法为execute(),只要方法返回的是一个String就能调用。而一般情况使用execute()是因为大多数人是重struts中转过来的,遵循了struts的习惯。请求具体调用哪个方法,是在配置文件中配置的。
另外补充一点,struts2中的action不需要继承任何类或任何接口就能调用,但actionSupport中提供了一些常用功能,继承它以后可以省点编码量

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧