Struts中继承ACTION问题

来源:百度知道 编辑:UC知道 时间:2024/07/03 01:13:54
STRUTS中 ACTION继承ACTION和DispatchAction有什么区别啊?能介绍下DispatchAction吗?

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中的方法,当然这些方法的定义要符合规范,使用继承