struts2中action中的name和method意思?

applicationContext.xml
<bean id="testaction" class="xxx.xxx.xxxAction">
<property>属性注入
</bean>

struts.xml
<action name="随便" class="testaction" method="m1">
</action>

<action name="随便2" class="testaction" method="m2">
</action>
这个程序里面name="随便"和name="随便2"是对应实体类的方法名字吗?method="m1"和method="m2"表示各自name的标记吗?
谢谢大家的帮忙!!!

name 为你请求action 的名字,method为你写的这个action中的方法名称

在你的例子中,“随便” 与 “随便2”是你请求这个action的名字,两者使用的是同一个action 的不同方法,也就是说你写的testaction中有m1 、m2 等方法 。随便这个action使用的是 m1 方法,随便2使用的是m2方法。

这样说不知道是不是简易易懂。。。。追问

在struts中还有这样的语句,包裹着action元素,请问这句话是什么意思呢?O(∩_∩)O谢谢,回答一下呗,谢喽

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-28
action中的name是当你测试action是要在浏览器地址栏中输入的你要测试的action标记
如<action name="student" ....>
</action>
action所在项目名是school,所有数据库是oracle
你在浏览器中要写http://3306/hostlocal:8080/school/student
而method方法是你的student的action中写的方法
默认是public String ececute(){
return "success";
}
然而你要写方法method=“form”,相应的student的action中就要写方法为
public String from(){
return "success";
不知道我是的清楚没有!
}
第2个回答  2018-04-05

    package中的name只是一个标识,你可以随意命名;

    .action中的name对应你页面中的一个action跳转,比如你页面有个表单提交: <form action="struts.xml中action里的name"


3.namespace是用于区分包中相同的类,如果没写,说明该包为默认空间,如果写了(如你的这个例子),那么就说明包caixuedong的空间为/core。


namespace实际上是在包的基础上对Action的进一步组织和划分,可以解决Action重名问题,因为在不同的命名空间中是可以有相同的Action名的,就好比一班有个叫张三的,二班也有个叫张三的,当我们呼叫某个张三时,就得带上“命名空间”,

Action也是如此,例子的greeting就必须通过 /core/greeting.action的方式来进行调用。


greeting那个name就是Action的名字,相当于上个例子的“张三”


包的名字只是作为其他包引用本包的标记。

本回答被网友采纳
第3个回答  2011-10-26
name 相当于servlet的url-mapping中的值
method表示 这个请求需要调用 的方法追问

method="m1"中的m1值是不是就是和实体类的中方法名一样?

追答

不是实体类啊。
是你实现Action接口或继承ActionSupport类中的方法。

追问

action里的class中的值是spring中对应的实体类的id,这里的action相当于调用spring中的实体类,而action中额name值为啥是是你实现Action接口或继承ActionSupport类中的方法呢?还是不太明白,我是新手,O(∩_∩)O谢谢

追答

如果是struts2与spring整合,那么action是被添加到spring容器中的。

name 是url的映射
class 是对应action在spring中bean的id属性
method 就是action中需要执行的方法

第4个回答  2011-10-28
访问 "***/随便.action"的时候,业务由method=m1的m1来处理
相似回答