论坛首页 Java企业应用论坛

提问:webwork如何实现这种情况的页面流转?

浏览 13056 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-09-28  
to lllyq

我的意思是这样的:

如最初的描述,有一个query.jsp页面,显示查询结果,要求提供单个删除功能,这时候,要求实现一个deleteAction继承queryAction

如果还有几个其他方式的查询页面,因为查询参数不一样,所以是不同的页面,如果这些页面也需要提供单个删除功能,按上述做法,就要针对每个页面实现一个deleteAction,继承不同的queryAction.

而实际上这些deleteAction的execute方法,只是删除一个ID,然后调用超类的queryAction而已。


不知道有没有说明白我的意思
0 请登录后投票
   发表时间:2005-09-28  
我也没大明白 lllyq 上述那段代码表达的意思
0 请登录后投票
   发表时间:2005-09-28  
其实有两种做法:
1。就是把查询条件再次提交 先到删除的action中处理 再转到查询的action
2。就是在一个页里有查询的时候 把查询结果显示在一个iframe里头 通过删除action的结果 用javascript去实现查询的再次提交。(这样的好处就是查询条件不用特别处理 只要在删除的时候 没有改动查询条件即可)
0 请登录后投票
   发表时间:2005-09-28  
你可以在根类实现删除的功能,基于ww,甚至create, update不必每个都写,要看例子的话,看我那个开源的项目,甚至search也可以不写
http://forum.iteye.com/viewtopic.php?t=16210
0 请登录后投票
   发表时间:2005-09-28  
费了好半天劲,才下了楼上的说的开源项目的源码,不过还是没看明白如何实现的。

感觉不到那个开源项目和这个问题有多少关系?楼上能概述一下吗?
0 请登录后投票
   发表时间:2005-09-28  
lllyq 写道
你可以在根类实现删除的功能,基于ww,甚至create, update不必每个都写,要看例子的话,看我那个开源的项目,甚至search也可以不写
http://forum.iteye.com/viewtopic.php?t=16210


我只是在针对楼主下面这个问题说明

引用
to lllyq

我的意思是这样的:

如最初的描述,有一个query.jsp页面,显示查询结果,要求提供单个删除功能,这时候,要求实现一个deleteAction继承queryAction

如果还有几个其他方式的查询页面,因为查询参数不一样,所以是不同的页面,如果这些页面也需要提供单个删除功能,按上述做法,就要针对每个页面实现一个deleteAction,继承不同的queryAction.

而实际上这些deleteAction的execute方法,只是删除一个ID,然后调用超类的queryAction而已。


不知道有没有说明白我的意思 
0 请登录后投票
   发表时间:2005-09-29  
readOnly的做法难道不能满足你的要求嘛?那你就把所有的查询条件包装成一个大的DTO,传到后台去处理这个DTO吧。

不懂,为什么那么复杂?
0 请登录后投票
   发表时间:2005-09-29  
我并不是说通过readOnly方式不能解决我的问题,只是想知道有没有更好的办法。楼上的似乎没有完全明白我的问题

比如有两种查询方式,对应两个queryAction

public class QueryByContentAction
{
    private String content;   //比如书名,作者的名称
    
    private String type;      //书名,作者的标志变量
    
    private String execute();
    {
    }
}



public class QueryByStateAction
{
    private int state;   //书籍的状态,如借出,超期
    
    public String execute();
    {
    }
}


假定这两个查询结果页面,都需要提供删除功能,按readOnly的作法就得实现两个DELETEACTION

public class DeleteAction1 extends QueryByContentAction
{
    ........    
    
}



public class DeleteAction2 extends QueryByStateAction
{
    .........
    
}



如果这种情况出现在多处又是什么情况呢?就是针对每一处都得提供一个deleteAction,而他们的功能都是一样的,执行删除,掉用超类的执行方法,这难道不是一种坏味道吗?
0 请登录后投票
   发表时间:2005-09-29  
我明白你的意思,所以我不是提出了我的意见嘛?

引用

那你就把所有的查询条件包装成一个大的DTO,传到后台去处理这个DTO吧。


就比如你自己写的代码,我不明白为什么不同条件的查询对应着两个不同的Action,要完成你的要求,显然应该用一个Action啊。也就是说,无论什么查询,只要用一个Action:

public class QueryAction 
{ 
    private XXXDTO queryObject; 
    
    private String execute(); 
    { 
    } 
} 


这个queryObject里面包含了你的content,type,state等字段。然后把这个queryObject传到后台去,让后台根据你这个queryObject里面的内容来判别到底应该发送什么样的HQL

然后你的DeleteAction再继承这个Action不就ok了?
0 请登录后投票
   发表时间:2005-09-29  
webwork应该是基于命令模式的,一个操作或者一组逻辑操作对应一个action,每个功能应该是独立的,action中出现继承关系,也只是把通用的功能剥离出来。

感觉deleteAction继承queryAction从面向对象的方面是讲不通的,难道delete operation is a query operation?

导致action的组织必须考虑界面表现形式。比如如果我不在结果页面中提供删除功能,这种继承关系是不必要的。因为deleteAction就是执行删除功能,为什么要继承查询功能?

不过这种变通的处理应该和web框架的实现相关,因为他无法记录上次执行的操作。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics