根据JavaEye好人的文章我开练了DWR访问Struts2 的Action:
刚开始学DWR2.0,想让他访问Struts2的Action,从网上找了些资料,下载了人家修改编译好的Dwr4Struts2.jar,按照配置说明写了一个例子,使用属性驱动的方法,
<br><br>
function testDwr(){ <br>
DWRActionUtil.execute( <br>
{namespace:'/jsp', <br>
action:'UserLogin', <br>
executeResult:'false'}, <br>
'loginform', writePage);<br><br>
} <br>
function writemodel(data){ <br>
alert("departure = "+data["uname"]);<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返回的对象数据。