例如
class BaseAction extends Action {
.. 删除HttpSession作用域中的所有对象;
}
class queryAction extends BaseAction {
// 这时HttpSession中的对象已经清除干净
execute....
}
7 个解决方案
#1
我是这样写的,希望对你有帮助。
public abstract BaseAction extends Action{
public void f1(){
}
public boolean f2(){
return true;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
f1();
if(!f2()){
return mapping.findForward("failure");
}
return process(mapping, form, request, response);
}
public abstract ActionForward process(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception ;
}
所有的action继承BaseAction,实现process方法。
public abstract BaseAction extends Action{
public void f1(){
}
public boolean f2(){
return true;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
f1();
if(!f2()){
return mapping.findForward("failure");
}
return process(mapping, form, request, response);
}
public abstract ActionForward process(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception ;
}
所有的action继承BaseAction,实现process方法。
#2
这样写:
public void f1(HttpServletRequest request,
HttpServletResponse response){
request.getSession().invalidate();
}
public void f1(HttpServletRequest request,
HttpServletResponse response){
request.getSession().invalidate();
}
#3
to Saro: 谢谢
不过当子类继承BaseAction,覆盖
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
...
}
那么以下这段代码还能执行吗?
{
f1();
if(!f2()){
return mapping.findForward("failure");
}
return process(mapping, form, request, response);
}
不过当子类继承BaseAction,覆盖
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
...
}
那么以下这段代码还能执行吗?
{
f1();
if(!f2()){
return mapping.findForward("failure");
}
return process(mapping, form, request, response);
}
#4
notice
#5
子类覆盖process方法即可,那么子类会调用父类的execute方法,在其中调用子类的process方法
#6
就是 stone****(东东) 说的那样,如果你不想执行f1(),f2()的话,直接继承Action并实现execute方法就行了。
#7
楼上的说的都很清楚了,其实这个方法不错,就是struts内部也采用类似的结构进行封装的!
#1
我是这样写的,希望对你有帮助。
public abstract BaseAction extends Action{
public void f1(){
}
public boolean f2(){
return true;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
f1();
if(!f2()){
return mapping.findForward("failure");
}
return process(mapping, form, request, response);
}
public abstract ActionForward process(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception ;
}
所有的action继承BaseAction,实现process方法。
public abstract BaseAction extends Action{
public void f1(){
}
public boolean f2(){
return true;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
f1();
if(!f2()){
return mapping.findForward("failure");
}
return process(mapping, form, request, response);
}
public abstract ActionForward process(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception ;
}
所有的action继承BaseAction,实现process方法。
#2
这样写:
public void f1(HttpServletRequest request,
HttpServletResponse response){
request.getSession().invalidate();
}
public void f1(HttpServletRequest request,
HttpServletResponse response){
request.getSession().invalidate();
}
#3
to Saro: 谢谢
不过当子类继承BaseAction,覆盖
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
...
}
那么以下这段代码还能执行吗?
{
f1();
if(!f2()){
return mapping.findForward("failure");
}
return process(mapping, form, request, response);
}
不过当子类继承BaseAction,覆盖
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
...
}
那么以下这段代码还能执行吗?
{
f1();
if(!f2()){
return mapping.findForward("failure");
}
return process(mapping, form, request, response);
}
#4
notice
#5
子类覆盖process方法即可,那么子类会调用父类的execute方法,在其中调用子类的process方法
#6
就是 stone****(东东) 说的那样,如果你不想执行f1(),f2()的话,直接继承Action并实现execute方法就行了。
#7
楼上的说的都很清楚了,其实这个方法不错,就是struts内部也采用类似的结构进行封装的!