action 具体是啥东西啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了action 具体是啥东西啊?相关的知识,希望对你有一定的参考价值。

就是框架当中不是有个什么action啊,
它具体有些个什么东西啊?

action是负责跳转的。

Controller:Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器Action,
自定义Action需要符合Struts的自定义Action规范,还需要在struts-config.xml的特定配置文件中进行配置,接收JSP输入字段形成
Action form,然后调用一个Action控制器。Action控制器中提供了model的逻辑接口。

ServletController(ActionServlet和自定义的Action),配置Ctrler需要配置struts-config.xml,通过客户端form的action来查找调用
相应的action,自定义action中的mapping对应的是配置文件中的forward标签,通过forward的path属性来跳转到相应的路径。
一、Struts预定义的Action类

1、不继承Struts预定义的Action类
(1)Thread safe 线程安全
(2)override execute(4 parameters)

注意:在使用继承Struts预定义的Action类,一定不要覆盖execute方法,否则会导致无法调用自定义Action相应方法。

2、DispatchAction类
(org.apache.struts.actions.DispatchAction)

DispatchAction类是Action类的子类,他提供了有实现的execute方法。

我们写的自定义Action类,可以继承DispatchAction类,但不要覆盖execute方法,可以在自定义类中写反回值和参数表都与execute方法相同的方
法,可以通过在struts-congfig.xml中为这个action的配置中添加一个参数,来判断调哪一个方法,实际上DispatchAction类就是通过反射机制,
通过form中参数调用了自定义Action中的方法,当然这些方法的定义要符合规范,使用继承DispatchAction类的自定义的Action类,也就会共享同
一的Action路径。

注意:使用继承DispatchAction类的自定义的Action,只会匹配一个action路径,只能共享一个ActionForm,如果加上校验,会产生form表单的参
数不一致的情况,会导致校验无法通过。
3、MappingDispatchAction类
(org.apache.struts.actions.MappingDispatchAction)

MappingDispatchAction类是DispatchAction的子类,他和DispatchAction不同点就是可以去匹配多个action路径,这样也就是结决了共
用ActoinForm的校验问题了,多个Action的路径使用同一的自定义Action类,这样就不用共享同一个ActionForm,也就不会有校验问题了。
参考技术A action可以理解为MVC中的Servlet 参考技术B

以上是关于action 具体是啥东西啊?的主要内容,如果未能解决你的问题,请参考以下文章

action的东西怎么打开

struts2为啥找不到action啊

java前端参数没有接收到,是啥情况?struts中action没有接受到参数

struts和struts2的区别是啥?

java中bean类,action类,model类,util类,dao等的作用是啥啊?

.action是啥文件