当前位置: 代码迷 >> J2EE >> struts2 利用json返回数据,前台一直得不到后台老板的数据
  详细解决方案

struts2 利用json返回数据,前台一直得不到后台老板的数据

热度:17   发布时间:2016-04-17 23:25:40.0
struts2 利用json返回数据,前台一直得不到后台的数据
前台js代码:
JavaScript code
function loginIn(autoFlag){
          $.post("loginDo.action",
                  {
                      username:$("[name=\"username\"]").val(),
                      password:$("[name=\"password\"]").val(),
                      autoLogin:autoFlag
                  },function(data){
                       alert(data);
                      if(data.resCode=="000"){
                      location.href="<%=basePath%>jsp/success.jsp"; 
                      }else if(data.resCode=="999"){
                          $("#loginErr").html("<font style='size:3px;color:red'>×&nbsp;用户名或密码错误</font>");
                      } 
                       
                  },"json"  );
          };   


struts.xml代码

<package name="personnelManager" extends="json-default">
        <action name="loginDo" class="com.sky.action.LoginAction" method="login">
             <result type="json">
                 <param name="root">resCode</param>
            </result>
            
        </action>
    </package>




后台LoginAction.java代码

public class LoginAction extends ActionSupport {
    private String username;
    private String password;
    private String resCode;
    private String autoFlag;
     
    public String getAutoFlag() {
        return autoFlag;
    }
    public void setAutoFlag(String autoFlag) {
        this.autoFlag = autoFlag;
    }
    public String getResCode() {
        return resCode;
    }
    public void setResCode(String resCode) {
        this.resCode = resCode;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
     
     
    public String login(){
        LoginDao loginDao = new LoginDao();
        Users user = loginDao.userQuery(username, password);
        if (user != null){
            resCode = Constants.success;
        }else{
            resCode = Constants.fail;
        }
         
        System.out.println(resCode);
        return resCode;
    }
 
}




其中resCode是能正常被设置为’000‘,就是说传入的数据全部正常,经过处理得到的数据也正常,但就是’000‘没法返回到前台。
firebug中显示如下

因此就不回调到function(data)中执行其他操作,
请问问题出在哪?

------解决思路----------------------
你要返回的是json 格式 。你看看你返回的。
------解决思路----------------------
你没有把数据转成json
------解决思路----------------------
AJAX请求ACTION,不是让ACTION用return返还的,而是response.getWriter().write(Json);你能明白么?
------解决思路----------------------
这里有例子看看吧。
  相关解决方案