论坛首页 Java企业应用论坛

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

浏览 13055 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-10-04  
我看要实现你要的功能,还是downpour得方法最可行。不过处理起来比较复杂一些,有的时候如果查询要求不复杂,宁可多copy几份,做项目要是都做到精益求精,那就没法做了。
0 请登录后投票
   发表时间:2005-10-08  
xmvigour 写道
其实有两种做法:
1。就是把查询条件再次提交 先到删除的action中处理 再转到查询的action
2。就是在一个页里有查询的时候 把查询结果显示在一个iframe里头 通过删除action的结果 用javascript去实现查询的再次提交。(这样的好处就是查询条件不用特别处理 只要在删除的时候 没有改动查询条件即可)

遇到这种情况,我也是采用xmvigour的方法
0 请登录后投票
   发表时间:2005-10-08  
引用
其实有两种做法:
1。就是把查询条件再次提交 先到删除的action中处理 再转到查询的action
2。就是在一个页里有查询的时候 把查询结果显示在一个iframe里头 通过删除action的结果 用javascript去实现查询的再次提交。(这样的好处就是查询条件不用特别处理 只要在删除的时候 没有改动查询条件即可)


to javacme 
    xmvigour

能把第二种做法说得详细一点吗?
0 请登录后投票
   发表时间:2005-10-08  
white182517 写道
需求描述:
有一个查询页面query.jsp,页面有一个文本框和列表框,输入查询内容和查询方式点击查询按钮,显示查询结果表格在当前页面。

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

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

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


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





   
   


[/swf][/url][/list]


ajax
0 请登录后投票
   发表时间:2005-10-10  
请参考webwork开发的blog里的日志管理功能,可能是你想要的流程
www.nihaoblog.com
注册,管理,贴子管理,删除。。。。
0 请登录后投票
   发表时间:2005-10-21  
关于那个参数问题:
把参数和参数值一起传到后台,然后分析处理,就可以传递任何参数进行删除操作了,不是吗?

成功或失败提示,这个用js可以很简单实现。

结果刷新,转到下一个查询,得出的结果应该就是新的吧。不知道我有没有理解你的意思。:)
0 请登录后投票
   发表时间:2005-10-21  
我的理解是这样的,你的页面格式如下:
<form>
  查询条件域1 查询条件域2 查询按钮

  <table>
    结果条目1  删除链接
    结果条目2  删除链接
    ......
  </table>
</form>


form包含了全部内容,删除链接通过js修改了与查询的同一form的action然后提交,所以才做到查询条件的自动传递,并通过继承的方式使deleteAction重用了queryAction。
现在有多种查询方式,对应多个queryAction(和相应页面),导致deleteAction代码不可重用。
上面的方案有个约束:deleteAction要求的参数不与queryAction的冲突。

我的方案:
1.页面传参的方式表述后面是哪个action
2.interceptor取参数,放到ActionContext中。
3.action:deleteBook的result类型是chain,值为${#nextAction}的形式,它会从ActionContext中取得

这样不符合PRG(Post-Redirect-Get)模式,不过还算好用。

还是用代码说话吧:)

queryBook1.jsp中 书目列表"删除"链接
<a href="javascript:theForm.action.value='deleteBook.action?nextAction=queryBook1&id=XXX';theForm.submit();;">删除</a>


ClientNextActionInterceptor.java

package book;

import com.opensymphony.xwork.interceptor.Interceptor;
import com.opensymphony.xwork.ActionInvocation;
import com.opensymphony.xwork.ActionContext;

public class ClientNextActionInterceptor implements Interceptor {
    public String intercept(ActionInvocation invocation); throws Exception {
        String strNextAction = null;
        String[] paramNextAction = (String[]); ActionContext.getContext();.getParameters();.get("nextAction");;
        if (paramNextAction != null && paramNextAction.length>0); {
            strNextAction = paramNextAction[0];
            ActionContext.getContext();.put("nextAction",strNextAction);;
        }

        return invocation.invoke();;
    }

    public void destroy(); { }
    public void init(); { }
}


webwork配置文件
   <package name="book" extends="default" namespace="/book">
        <interceptors>
           <interceptor name="clientNextActionInterceptor" class="book.ClientNextActionInterceptor"/>

            <interceptor-stack name="bookInterceptorStack">
                <interceptor-ref name="defaultStack"/>
                <interceptor-ref name="clientNextActionInterceptor"/>
            </interceptor-stack>
        </interceptors>

        <default-interceptor-ref name="bookInterceptorStack"/>

        <action name="deleteBook" class="book.DeleteBookAction">
            <result name="success" type="chain">
                <param name="actionName">${#nextAction}</param>
            </result>
        </action>

       <action name="queryBook1" class="book.QueryBook1Action">
            <result name="success">/book/queryBook1.jsp</result>
        </action>
        <action name="queryBook2" class="book.QueryBook2Action">
            <result name="success">/book/queryBook2.jsp</result>
        </action>
    </package>
0 请登录后投票
   发表时间:2005-10-21  
树个更大的话题:
1. 上述情况如何实现PRG模式
2. 如何在 `删除链接` 不同享 `查询form` 的情况下实现
3. ajax,RIFE或其它方案的具体实现?

接人去也~~~
大家继续讨论.....
0 请登录后投票
论坛首页 Java企业应用版

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