精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-09-28
to lllyq
我的意思是这样的: 如最初的描述,有一个query.jsp页面,显示查询结果,要求提供单个删除功能,这时候,要求实现一个deleteAction继承queryAction 如果还有几个其他方式的查询页面,因为查询参数不一样,所以是不同的页面,如果这些页面也需要提供单个删除功能,按上述做法,就要针对每个页面实现一个deleteAction,继承不同的queryAction. 而实际上这些deleteAction的execute方法,只是删除一个ID,然后调用超类的queryAction而已。 不知道有没有说明白我的意思 ![]() |
|
返回顶楼 | |
发表时间:2005-09-28
我也没大明白 lllyq 上述那段代码表达的意思
|
|
返回顶楼 | |
发表时间:2005-09-28
其实有两种做法:
1。就是把查询条件再次提交 先到删除的action中处理 再转到查询的action 2。就是在一个页里有查询的时候 把查询结果显示在一个iframe里头 通过删除action的结果 用javascript去实现查询的再次提交。(这样的好处就是查询条件不用特别处理 只要在删除的时候 没有改动查询条件即可) |
|
返回顶楼 | |
发表时间:2005-09-28
你可以在根类实现删除的功能,基于ww,甚至create, update不必每个都写,要看例子的话,看我那个开源的项目,甚至search也可以不写
http://forum.iteye.com/viewtopic.php?t=16210 |
|
返回顶楼 | |
发表时间:2005-09-28
费了好半天劲,才下了楼上的说的开源项目的源码,不过还是没看明白如何实现的。
![]() 感觉不到那个开源项目和这个问题有多少关系?楼上能概述一下吗? |
|
返回顶楼 | |
发表时间: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而已。 不知道有没有说明白我的意思 |
|
返回顶楼 | |
发表时间:2005-09-29
readOnly的做法难道不能满足你的要求嘛?那你就把所有的查询条件包装成一个大的DTO,传到后台去处理这个DTO吧。
不懂,为什么那么复杂? |
|
返回顶楼 | |
发表时间: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,而他们的功能都是一样的,执行删除,掉用超类的执行方法,这难道不是一种坏味道吗? |
|
返回顶楼 | |
发表时间: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了? |
|
返回顶楼 | |
发表时间:2005-09-29
webwork应该是基于命令模式的,一个操作或者一组逻辑操作对应一个action,每个功能应该是独立的,action中出现继承关系,也只是把通用的功能剥离出来。
感觉deleteAction继承queryAction从面向对象的方面是讲不通的,难道delete operation is a query operation? 导致action的组织必须考虑界面表现形式。比如如果我不在结果页面中提供删除功能,这种继承关系是不必要的。因为deleteAction就是执行删除功能,为什么要继承查询功能? 不过这种变通的处理应该和web框架的实现相关,因为他无法记录上次执行的操作。 |
|
返回顶楼 | |