Struts五种内置Action类区别
2008-08-07 10:23 A.M.
(1).org.apache.struts.actions.ForwardAction
ForwardAction类仅仅用于转发请求,不执行任何其他的业务操作。
<action
path="/Welcome"
type="org.apache.struts.actions.ForwardAction"
parameter="/pages/Welcome.jsp"/>
(2).org.apache.struts.actions.IncludeAction
有时需要引入一个页面或资源,这时您可以使用IncludeAction,其设定方式与ForwardAction相同,只不过它是用include的方式来调用页面或资源.
<action
path="/SomeResource"
type="org.apache.struts.actions.IncludeAction"
parameter="/path/someServlet"/>
(3).org.apache.struts.actions.DispatchAction
<action>的parameter属性是给DispatchAction使用的,你的类要继承DispatchAction类,(而不是普 通的Action类,普通Action类只会执行execute方法.)DispatchAction会根据parameter的值执行特定的方法,注意 parameter的值不要设置为execute,也不要覆盖DispatchAction中的execute(),因为DispatchAction继 承于Action,它的execute会首先执行,在execute()方法中取出parameter的值,通过java反射调用指定的方法。
<action
……
parameter="method"
……
parameter="method"这个参数就是说,在用户提交请求时取得method参数,根据method参数调用相应的方法,如 /editUser.html?method=Delete就是调用对应action中的Delete方法,这样你就可以写一个Action类处理很多的 逻辑,而不是象从前那样在一个方法里面加上若干参数,或者直接建若干个action来处理。
(4).org.apache.struts.actions.LookupDispatchAction
LookupDispatchAction类是DispatchAction的子类,在LookupDispatchAction类中也可以定义多个业务方法。通常LookupDispatchAction主要应用于在一个表单中有多个提交按钮且按钮名字(name)相同的情况下,LookupDispatchAction能根据按钮value值的不同调用不同的方法,这些按钮的名字和具体的ActionMapping的parameter属性值相对应。
(5).org.apache.struts.actions.SwitchAction
用于从一个模块转换至另一个模块,当您的应用程序分作多个模块时,一种切换模块的方法就是使用SwitchAction,它需要在请求中带两个参数,一个是prefix,用来指定模块前缀名称,一个是page,用来指定相对于模块的资源路径.
<action-mappings>
<action
path="/LoginSwitch"
type="org.apache.struts.actions.SwitchAction"/>
</action-mappings>
之后我们可以使用这样的路径与参数来请求login模块的Login.do
2008-08-07 10:23 A.M.
(1).org.apache.struts.actions.ForwardAction
ForwardAction类仅仅用于转发请求,不执行任何其他的业务操作。
<action
path="/Welcome"
type="org.apache.struts.actions.ForwardAction"
parameter="/pages/Welcome.jsp"/>
(2).org.apache.struts.actions.IncludeAction
有时需要引入一个页面或资源,这时您可以使用IncludeAction,其设定方式与ForwardAction相同,只不过它是用include的方式来调用页面或资源.
<action
path="/SomeResource"
type="org.apache.struts.actions.IncludeAction"
parameter="/path/someServlet"/>
(3).org.apache.struts.actions.DispatchAction
<action>的parameter属性是给DispatchAction使用的,你的类要继承DispatchAction类,(而不是普 通的Action类,普通Action类只会执行execute方法.)DispatchAction会根据parameter的值执行特定的方法,注意 parameter的值不要设置为execute,也不要覆盖DispatchAction中的execute(),因为DispatchAction继 承于Action,它的execute会首先执行,在execute()方法中取出parameter的值,通过java反射调用指定的方法。
<action
……
parameter="method"
……
parameter="method"这个参数就是说,在用户提交请求时取得method参数,根据method参数调用相应的方法,如 /editUser.html?method=Delete就是调用对应action中的Delete方法,这样你就可以写一个Action类处理很多的 逻辑,而不是象从前那样在一个方法里面加上若干参数,或者直接建若干个action来处理。
(4).org.apache.struts.actions.LookupDispatchAction
LookupDispatchAction类是DispatchAction的子类,在LookupDispatchAction类中也可以定义多个业务方法。通常LookupDispatchAction主要应用于在一个表单中有多个提交按钮且按钮名字(name)相同的情况下,LookupDispatchAction能根据按钮value值的不同调用不同的方法,这些按钮的名字和具体的ActionMapping的parameter属性值相对应。
(5).org.apache.struts.actions.SwitchAction
用于从一个模块转换至另一个模块,当您的应用程序分作多个模块时,一种切换模块的方法就是使用SwitchAction,它需要在请求中带两个参数,一个是prefix,用来指定模块前缀名称,一个是page,用来指定相对于模块的资源路径.
<action-mappings>
<action
path="/LoginSwitch"
type="org.apache.struts.actions.SwitchAction"/>
</action-mappings>
之后我们可以使用这样的路径与参数来请求login模块的Login.do