精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-09-27
有一个查询页面query.jsp,页面有一个文本框和列表框,输入查询内容和查询方式点击查询按钮,显示查询结果表格在当前页面。 查询结果的每一行记录尾部有一个删除按钮,点击删除按钮,执行删除操作。 要求如果删除失败和删除成功都能返回query.jsp,并显示相应的提示信息,比如删除失败或成功。如果删除成功,返回的query.jsp页面也应该是更新后的内容,已经不包括刚才删除的记录。 考虑过将query.jsp的查询内容和方式传递到删除action,但是有可能也有其他页面里也有删除操作的链接,而那些页面需要传递不同的参数,显然,不可能针对每种情况实现一个执行同一个操作的action。 问题 请问这在webwork中应该如何实现这种方式的页面流转呢?或者有种什么变通的方式能提供用户相似的友好性呢? [/swf][/url][/list] 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-09-27
一个可选的方法:弹出小窗口,刷新opener,几秒后关闭小窗口
不过有拦截窗口的就不爽了 |
|
返回顶楼 | |
发表时间:2005-09-27
action.java
................. private String tishi; public String getTishi();{ return this.tishi; } public String execute();{ this.tishi="删除成功!"; } ................................. query.jsp var tishi=<ww: > //提示 function init();{ if(tishi=!="");{ alert(tishi);; } } <body onload="init();"> |
|
返回顶楼 | |
发表时间:2005-09-28
to zkj_beyond
要在query.jsp里显示提示信息,这不是问题。 问题是如何在删除成功时,返回到query.jsp页面,这个页面显示的查询记录已经不包含已经删除的记录了? 如果仅仅在xwork.xml文件中配置action的success的导向页面是query.jsp是无法实现的。 因为显示结果必须经过用户的手工干预。 TO SCUD: 能详细一点说明你的作法吗? |
|
返回顶楼 | |
发表时间:2005-09-28
把你的查询条件在Action层保留一份,同时,在Action里面增加一个private变量,存放你原来进行查询的url,然后你在配置文件里面配一下,把这个url作为你的下一个转向
|
|
返回顶楼 | |
发表时间:2005-09-28
你要做到完全同步是不可能的,只能针对你目前的查询做,和分页是一个道理
|
|
返回顶楼 | |
发表时间:2005-09-28
public class QueryAction implements Action{ private String queryParameter1; private String queryParameter2; public String execute(); { //query ..... return SUCCESS; } //getters and setters ...... } public class DeleteAction extends QueryAction { public String execute(); { //delete...... super.execute();; return SUCCESS; } } 页面上,保留查询结果的Form,然后这样写: <a href="#" onClick="submitDelete(${o.id})">Delete</a> <script> function submitDelete(objId){ form.action = "delete.action"; form.objId.value = objId; form.submit(); } </script> |
|
返回顶楼 | |
发表时间:2005-09-28
to ReadOnly
通过保留上一步执行的命令操作可以返回上一页面,但是如果有多个页面引用删除操作,是不是就意味着必须实现多个deleteAction,每一个action继承不同的上一个命令? 比如我现在可能有一个查询页面,几个统计页面,都要显示查询结果,希望在查询结果中提供删除功能。 总感觉这样有冗余,执行同一功能的action,有多个类似的拷贝。 可以上一个或几个运行的action保存在valueStack里吗?这样就不用继承多个action了,只需要找到上一个action,执行就是了。 to scud 按你说的方式试过,没有成功,感觉opener的刷新只能保证返回上一页面的初始状态。 大家以前有遇到过这种情况吗?是怎么处理的呢?有没有通过界面的改进,来提供用户一样的可用性来回避这个问题呢? |
|
返回顶楼 | |
发表时间:2005-09-28
我来补上Readonly没说的那一步:
<form name="pagination" id="pagination" action="<ww:property value="noQueryRequestPath" />" method="post"> <ww:bean name="'com.opensymphony.util.TextUtils'" id="textUtils"/> <ww:iterator value="#parameters"> <ww:if test="(key not in {'mrc','si' (说明:mrc, si 是分页属性,不必保留,由js重新设置,还可以加上其他你不想包含进来参数);}); && #textUtils.stringSet(value);"> <ww:iterator value="value" id="arrayValue"> <input type="hidden" name="<ww:property value="[1].key"/>" value="<ww:property value="#attr.arrayValue"/>"/> </ww:iterator> </ww:if> </ww:iterator> <input type="hidden" name="si" /> <input type="hidden" name="mrc" /> </form> |
|
返回顶楼 | |
发表时间:2005-09-28
white182517 写道 to ReadOnly
通过保留上一步执行的命令操作可以返回上一页面,但是如果有多个页面引用删除操作,是不是就意味着必须实现多个deleteAction,每一个action继承不同的上一个命令? 比如我现在可能有一个查询页面,几个统计页面,都要显示查询结果,希望在查询结果中提供删除功能。 总感觉这样有冗余,执行同一功能的action,有多个类似的拷贝。 可以上一个或几个运行的action保存在valueStack里吗?这样就不用继承多个action了,只需要找到上一个action,执行就是了。 to scud 按你说的方式试过,没有成功,感觉opener的刷新只能保证返回上一页面的初始状态。 大家以前有遇到过这种情况吗?是怎么处理的呢?有没有通过界面的改进,来提供用户一样的可用性来回避这个问题呢? 不明白什么意思,删除不是很简单一个id就可以搞定的么? |
|
返回顶楼 | |