最近开始接触ExtJs,因为感觉其界面比较炫,然后想用用。但是在登录的时候遇到了一些问题,希望有人能帮忙看看。
在Struts有如下配置:        <package name="actions" namespace="/" extends="global">
<action name="loginAction" class="loginAction">
 <result type="json" />
</action>
</package>然后在Action类中定义如下:public class LoginAction extends ActionSupport implements ModelDriven<User> {
private static final long serialVersionUID = 1L;

private User user = new User();
private ILoginService loginService; @Override
public User getModel() {
return user;
}

public ILoginService getLoginService() {
return loginService;
}
public void setLoginService(ILoginService loginService) {
this.loginService = loginService;
}

@Override
public String execute() {
try {
getLoginService().login(user);
} catch(GeilivableException e) {
return INPUT;
}
return SUCCESS;
}
}在ExtJs中登录的响应代码如下: login : function() {
if (this.fp.form.isValid()) {
this.fp.form.submit({
waitTitle : "请稍候",
waitMsg : "正在登录......",
url : "loginAction",
success : function(form, action) {
window.location.href = 'main/mainpanel.jsp';
},
failure : function(form, action) {
Ext.Msg.alert("登录信息", action.result.message);
form.reset();
}
});
}
},这样写的代码,始终提示action.result.message这句话有问题,即使我在Action中加入message的字段。用JS的调试工具查看确实也没发现action中有这样的字段,甚至都没有找到result的字段,用HttpWatch查看返回的数据好像也是有问题。不知道我到底是哪里出问题了,有谁帮忙解决一下吧,谢谢啦~~~~~~~~~~~~~~~~~~~~~~·

解决方案 »

  1.   

    action.result.message 你这是要显示action里传到页面的message。你action里没有这个东西。肯定会出错啦。Ext.Msg.alert("登录信息", action.result.message);action.result.message你用个字符串代替试试看?
      

  2.   

    你的struts.xml都没配置好。还要写个<include></include>具体自己网上看下。
      

  3.   

    前些时候也是因为EXT绚才接触,结果用的过程出现很多问题- -!
    还是放弃了,目前还没那么多时间花在这上面
      

  4.   

    action.result.message换成字符串是可以的,这样也是能解决我当前的问题,就是我想知道为什么我这样写不可以用,其他人却可以用。另外在action中加入message字段的方式我也试过了,还有配置includeProperites的方式我也试过了,就是不能用~~~~
    额,我已经很无语了~~~~