初学Ext,想做一个简单的登陆如下
loginForm.doAction('submit',{
url:'user.action',
method:'POST',
waitMsg:'正在登陆....',
success:function(form,action){
  alert(action.result.msg);
var isSuc = action.result.success;  
          if(isSuc) { Ext.Msg.alert('消息', '登陆成功..'); };
        },
        failure:function(form, action){  
            alert('登陆失败');  
        }
})后台java登陆成功返回了数据的,但不知道前台怎么接收。上面的不对,怎么接收?
部分后台代码
public String userCheck()throws Exception{
User u = new User();
u.setUsername(info.getUsername());
u.setPassword(info.getPassword());
System.out.println("NAME :"+u.getUsername()+" password :"+u.getPassword());
if(userService.checkUserPassword(u))
return SUCCESS;
return "fail";
}
struts2 代码<action name="user" class="com.boco.web.action.UserAction" method="userCheck">

解决方案 »

  1.   

    后台不是这样返回的
    要用response write出来不能直接return success
      

  2.   

    后台的代码不能return 因为你是异步请求 响应必然要到前台去 不论结果如何都要向前台写
    struts.xml中不需要配置resault了 只需要配置其对应的action就可以了
    if(userService.checkUserPassword(u)){
    response.getWriter().write('成功');//response哪来的 楼主你懂得
    }
    response.getWriter().write('失败')
      

  3.   


    public void GetPersonnelList(HttpServletResponse response){
            System.out.println("获取员工列表!");
            PersonnelDao dao = new PersonnelDao();
            List list = dao.getPersonnelList();
            try{
                /*
                 * json 需要导入包: 
                 * json-lib-2[1].2.2-jdk15.jar 
                 * commons-collections.jar 
                 * commons-digester.jar commons-lang.jar
                 * ezmorph-1[1].0.4.jar
                 * */
                JSONArray jsonArray = JSONArray.fromObject(list);            
                sendJson(response, jsonArray.toString());            
            }catch(Exception e){
                e.getMessage();
            }
        }
    public void sendJson(HttpServletResponse response,String jsonStr){
            PrintWriter out = null;
            try{
                out = response.getWriter();
                out = response.getWriter();
                System.out.println(jsonStr);
                out.print(jsonStr);
                out.flush();
                out.close();
            }catch(Exception e ){
                e.printStackTrace();
            }finally{
                out.flush();
                out.close();    
            }
                }
    Ext.Ajax.request({ //ajax异步请求后台 
                url: '/Extjs_Center/personnelAction.do?method=personnelList', 
                method:'post', 
                success:function(response,opt){             
                    var data = response.responseText;        //返回后台json数据                     
                    var results= Ext.decode(data);            
                    store.proxy = new Ext.ux.data.PagingMemoryProxy(results); //PagingMemoryProxy() 一次性读取数据 
                    store.load({params:{start:0,limit:13}});        //导入后数据显示
                }, 
                failure: function(){
                    Ext.Msg.alert("failure");
                } 
            });
      

  4.   


    public void GetPersonnelList(HttpServletResponse response) 跟了参数,怎么找不到这个方法呀?要怎么设置呢?
      

  5.   

    我倒啊~~~我说楼主你懂得 看来你不懂 跟参数干嘛
    在方法里边直接用这个
     
    if(userService.checkUserPassword(u)){
    response.getWriter().write('成功');//HttpServletResponse response 就这么直接用
    }
    response.getWriter().write('失败')