【问题标题】:Returning Json Object in Spring Boot but It is showing undefined在 Spring Boot 中返回 Json 对象,但显示未定义
【发布时间】:2018-11-11 05:24:48
【问题描述】:

这是我的 javascript 函数的一部分,它正在调用控制器

$.post(filterServiceUrl, data, onFilterProductsSuccess, "json");

控制器被成功调用

public @ResponseBody HomeLoanFilterServiceResponseDto filter(FilterModel model, ModelMap modelMap) {
    List<LoanDetailsDto> loans = new ArrayList<LoanDetailsDto>();
    LoanFilterServiceResponseDto response = new LoanFilterServiceResponseDto();
    response.setSuccess(true);
    response.setErrorMessage("");
    //Business Logic
    response.setLoans(loans);
    return response

}

得到响应后调用函数

function onFilterProductsSuccess(serviceResponse) { alert("serviceResponse.IsSuccess: "+ serviceResponse.isSuccess) };

函数显示警告框serviceResponse.IsSuccess: undefined

【问题讨论】:

  • 你能发布 LoanFilterServiceResponseDto 类结构吗? ResponseDto 类中是否有“isSuccess”方法?
  • public class LoanFilterServiceResponseDto { private boolean isSuccess; private String errorMessage; private List&lt;LoanDetailsDto&gt; loans; //getteres &amp; setters}
  • 请为 isSuccess 属性添加 getter 和 setter
  • getter & setter 适用于所有三个属性。
  • 谢谢它的工作:)

标签: java ajax spring spring-mvc spring-boot


【解决方案1】:

您不能直接访问私有属性。你的方法应该是这样的:

public boolean isSuccess(){
    return this.isSuccess;
} 

所以如果你想检查响应是否成功,你应该添加 () - 调用访问私有的公共方法-

alert("serviceResponse.IsSuccess: "+ serviceResponse.isSuccess())

【讨论】:

    【解决方案2】:

    这是响应类。

        public class LoanFilterServiceResponseDto {
    private boolean isSuccess;
    private String errorMessage;
    //private List<LoanDetailsDto> loans; //getteres & setters
     //
    
    public boolean isSuccess() {
        return isSuccess;
    }
    
    public void setSuccess(boolean success) {
        isSuccess = success;
    }
    
    public String getErrorMessage() {
        return errorMessage;
    }
    
    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }
    }
    

    这是js方法。

     function onFilterProductsSuccess(serviceResponse) {
        alert("serviceResponse.IsSuccess: "+ serviceResponse.isSuccess())
           };
    

    【讨论】:

    • 您的回答没有问题。我想我们俩都同时发布了答案:)
    【解决方案3】:

    您的退货实体是

    HomeLoanFilterServiceResponseDto

    ,但实际上你返回了这个

    LoanFilterServiceResponseDto

    尝试换其他类

    【讨论】:

    • 是的,这是错字,但我使用的是相同的 LoanFilterServiceResponseDto
    猜你喜欢
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多