alexyuan2004
alexyuan2004
2008-12-26 10:55

Dwr2 无法读取Struts2 ModelDriven的Action返回的值

已采纳

根据JavaEye好人的文章我开练了DWR访问Struts2 的Action:

刚开始学DWR2.0,想让他访问Struts2的Action,从网上找了些资料,下载了人家修改编译好的Dwr4Struts2.jar,按照配置说明写了一个例子,使用属性驱动的方法,
<br><br> function testDwr(){ <br> DWRActionUtil.execute( <br> {namespace:&#39;/jsp&#39;, <br> action:&#39;UserLogin&#39;, <br> executeResult:&#39;false&#39;}, <br> &#39;loginform&#39;, writePage);<br><br> } <br> function writemodel(data){ <br> alert(&quot;departure = &quot;+data[&quot;uname&quot;]);<br><br> }<br><br>

以上代码可以工作,能够alert出我输入的uname。

但是如果使用ModelDriven模式,我new一个Object 的user,把 uname和password 赋值给user.uname和user.password,然使用
function testModelDwr(){
DWRActionUtil.execute(
{namespace:'/jsp',
action:'UserLogin',
executeResult:'false'},
user, writePage);

}
去发送请求,通过在ModelAction 里跟踪,能正确得到我传入的user对象,下面是我的ModelAction.

public class ModelLoginAction extends ActionSupport implements ModelDriven {

private static final long serialVersionUID = 1640375596297189219L;
private User user = new User();
public String login() {
UserManager um = new UserManager();
System.out.println(user.getUname()+"="+user.getPassword());
User login = um.login(user);
if (login!=null) {
return SUCCESS;
} else {
return ERROR;
}
}

@Override
public User getModel() {
return user;
}

}

但是奇怪的是我使用 alert(data["uname"]) 弹出的是undifined。如果是alert(data)则是[object object].
请指点该怎么显示ModelDriven返回的对象数据。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • weixin_42299723 weixin_42299723 13年前

    你可以使用for (var i in data)
    {
    alert(data[i]);
    }

    打出data里到底有什么看看。

    点赞 评论 复制链接分享

相关推荐