根据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返回的对象数据。
你可以使用for (var i in data)
{
alert(data[i]);
}
打出data里到底有什么看看。