czx566
2008-06-19 20:18
浏览 261
已采纳

在DWR中怎么实现页面跳转?

项目要求:
1,在dwr Java代码中实现权限验证,如果session中没有用户信息,页面实现跳转。
2,前提:由于项目UI对后台代码的调用都是通过dwr,没有用到别的框架和jsp和servlet。
要求:需要实现通过Dwr调用,向前端返回一个excle文件.

我的其中一个代码如下:
 [code="java"]

public void doSomething() throws Exception {

              //取得webapp上下文对象
    org.directwebremoting.WebContext web = WebContextFactory.get();
              Session session = web.getHttpServletRequest().getSession();
    if(session.getAttribute("user")==null){
        //注释掉的forwardToString方法无效

1 //web.forwardToString("/login.html");
 2             web.getHttpServletResponse().sendRedirect("/login.html");
return;
}else{
//doSomething
}

}

 [/code]

1和2方法我都试过,都没有跳转,好像ajax的response和我们平时请求的不一样,不知道怎么解决这两个问题?

[b]问题补充:[/b]
你说的回调我考虑过,不过这样必然 造成 我必须要对我所有的ajax java端方法所返回的值都要加一个返回值,再根据这个值在js端处理,感觉这样就破环了VO的结构。
更主要的是,就算不考虑上面这些,采用这些方法,我的第二个难题还是没有解决。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • iteye_16739 2008-06-20 17:11
    已采纳
    点赞 打赏 评论
  • iteye_7852 2008-06-20 09:31

    你这个跳转应该在客户端进行,写一个js function来执行跳转,在你验证用户的
    时候让dwr回掉这个function就可以了。

    Remote.method(params, call_back_function);

    点赞 打赏 评论
  • iteye_16739 2008-06-20 17:09

    对于第一个问题,dwr可以捕获java异常的.所以,你只要抛出对应的没有登录的异常.然后用dwr的异常处理机制(具体看文档吧)来进行跳转就ok了.

    第二个问题,难道用了dwr,就要全部问题都要用dwr解决?

    点赞 打赏 评论

相关推荐 更多相似问题