论坛首页 Java企业应用论坛

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

浏览 13058 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-09-27  
需求描述:
有一个查询页面query.jsp,页面有一个文本框和列表框,输入查询内容和查询方式点击查询按钮,显示查询结果表格在当前页面。

查询结果的每一行记录尾部有一个删除按钮,点击删除按钮,执行删除操作。

要求如果删除失败和删除成功都能返回query.jsp,并显示相应的提示信息,比如删除失败或成功。如果删除成功,返回的query.jsp页面也应该是更新后的内容,已经不包括刚才删除的记录。

考虑过将query.jsp的查询内容和方式传递到删除action,但是有可能也有其他页面里也有删除操作的链接,而那些页面需要传递不同的参数,显然,不可能针对每种情况实现一个执行同一个操作的action。


问题
请问这在webwork中应该如何实现这种方式的页面流转呢?或者有种什么变通的方式能提供用户相似的友好性呢?





   
   


[/swf][/url][/list]
   发表时间:2005-09-27  
一个可选的方法:弹出小窗口,刷新opener,几秒后关闭小窗口

不过有拦截窗口的就不爽了
0 请登录后投票
   发表时间: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();">
0 请登录后投票
   发表时间:2005-09-28  
to zkj_beyond

要在query.jsp里显示提示信息,这不是问题。


问题是如何在删除成功时,返回到query.jsp页面,这个页面显示的查询记录已经不包含已经删除的记录了?

如果仅仅在xwork.xml文件中配置action的success的导向页面是query.jsp是无法实现的。

因为显示结果必须经过用户的手工干预。

TO SCUD:

能详细一点说明你的作法吗?
0 请登录后投票
   发表时间:2005-09-28  
把你的查询条件在Action层保留一份,同时,在Action里面增加一个private变量,存放你原来进行查询的url,然后你在配置文件里面配一下,把这个url作为你的下一个转向
0 请登录后投票
   发表时间:2005-09-28  
你要做到完全同步是不可能的,只能针对你目前的查询做,和分页是一个道理
0 请登录后投票
   发表时间: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>
0 请登录后投票
   发表时间:2005-09-28  
to ReadOnly

通过保留上一步执行的命令操作可以返回上一页面,但是如果有多个页面引用删除操作,是不是就意味着必须实现多个deleteAction,每一个action继承不同的上一个命令?

比如我现在可能有一个查询页面,几个统计页面,都要显示查询结果,希望在查询结果中提供删除功能。

总感觉这样有冗余,执行同一功能的action,有多个类似的拷贝。

可以上一个或几个运行的action保存在valueStack里吗?这样就不用继承多个action了,只需要找到上一个action,执行就是了。


to scud

按你说的方式试过,没有成功,感觉opener的刷新只能保证返回上一页面的初始状态。


大家以前有遇到过这种情况吗?是怎么处理的呢?有没有通过界面的改进,来提供用户一样的可用性来回避这个问题呢?
0 请登录后投票
   发表时间: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>
0 请登录后投票
   发表时间:2005-09-28  
white182517 写道
to ReadOnly

通过保留上一步执行的命令操作可以返回上一页面,但是如果有多个页面引用删除操作,是不是就意味着必须实现多个deleteAction,每一个action继承不同的上一个命令?

比如我现在可能有一个查询页面,几个统计页面,都要显示查询结果,希望在查询结果中提供删除功能。

总感觉这样有冗余,执行同一功能的action,有多个类似的拷贝。

可以上一个或几个运行的action保存在valueStack里吗?这样就不用继承多个action了,只需要找到上一个action,执行就是了。


to scud

按你说的方式试过,没有成功,感觉opener的刷新只能保证返回上一页面的初始状态。


大家以前有遇到过这种情况吗?是怎么处理的呢?有没有通过界面的改进,来提供用户一样的可用性来回避这个问题呢?

不明白什么意思,删除不是很简单一个id就可以搞定的么?
0 请登录后投票
论坛首页 Java企业应用版

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