当前位置: 首页 > 知识库问答 >
问题:

Spring REST将布尔实体返回到AngularJS...以字符数组的形式出现

蒋俊人
2023-03-14
@RequestMapping(value = RESTConstants.SLASH + "{id}" + RESTConstants.SLASH + RESTConstants.DEPENDENCIES, method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<Boolean> hasDependencies(@PathVariable Long id, UriComponentsBuilder builder) {
    HttpHeaders responseHeaders = new HttpHeaders();
    Technology technology = technologyService.findById(id);
    if (technology == null) {
        return new ResponseEntity<Boolean>(responseHeaders, HttpStatus.NOT_FOUND);
    } else {
        Boolean hasDependencies = technologyService.hasDependencies(id);
        responseHeaders.setLocation(builder.path(RESTConstants.SLASH + RESTConstants.TECHNOLOGIES + RESTConstants.SLASH + "{id}" + RESTConstants.DEPENDENCIES).buildAndExpand(technology.getId()).toUri());
        return new ResponseEntity<Boolean>(hasDependencies, responseHeaders, HttpStatus.OK);
    }
}
@RequestMapping(value = RESTConstants.SLASH + "{id}" + RESTConstants.SLASH + RESTConstants.DEPENDENCIES, method = RequestMethod.GET)
@ResponseBody
public boolean hasDependencies(@PathVariable Long id, UriComponentsBuilder builder) {
    Technology technology = technologyService.findById(id);
    if (technology == null) {
        return false;
    } else {
        return technologyService.hasDependencies(id);
    }
}

下面是AngularJS代码:

'use strict';
utilsModule.factory('RESTService',
  ['$resource', 'ENV', 'FileUploader', 'AuthService',
  function($resource, ENV, FileUploader, AuthService) {
    return {
      Technology: $resource(ENV.NITRO_PROJECT_REST_URL + '/technologies/:technologyId', {}, {
        hasDependencies: {
          url: ENV.NITRO_PROJECT_REST_URL + '/technologies/:technologyId/dependencies',
          method: 'GET',
          params: { technologyId: 'technologyId' }
        }
      })
    }
  }
]);

'use strict';
technologyModule.factory('TechnologyService',
  ['RESTService',
  function(RESTService) {
    var factory = {};
    factory.hasDependencies = function(technologyId, callback) {
      return RESTService.Technology.hasDependencies({technologyId: technologyId}).$promise.then(callback);
    }
    return factory;
  }
]);

'use strict';
technologyModule.controller('technology.deleteCtrl',
  ['$scope', '$state', '$stateParams', 'TechnologyService',
  function($scope, $state, $stateParams, TechnologyService) {
    $scope.hasDependencies = true;
    TechnologyService.hasDependencies($stateParams.technologyId, function(hasDependencies) {
      console.log("hasDependencies", hasDependencies);
      $scope.hasDependencies = hasDependencies;
    });
  }
]);

在Chromium浏览器调试窗格中,network Headers选项卡显示:远程地址:127.0.0.1:8443请求URL:xxxx:8443/Project-REST/Technologies/4/Dependencies请求方法:GET状态代码:200 OK响应Headersview source Access-Control-Allow-Headers:Accept-Language,Content-Type,X-Requested-With,accept、Origin、Access-Control-Request-Methods,Accept-Origine、Access-Control-Request-Methods,JSON;Charset=UTF-8日期:Sun,2014年10月19日07:47:59 GMT过期:0 pragma:no-cache server:apache-coyote/1.1 strict-transport-security:max-age=31536000;includeSubDomains传输-编码:分块x-content-type-options:nosniff x-frame-options:deny x-xss-protection:1;mode=块

网络响应选项卡显示:false

共有1个答案

饶明亮
2023-03-14

我求助于一个包装类:

public class ValueResource {

    private Object value;

    public ValueResource(Object value) {
        this.value = value;
    }

    public Object getValue() {
        return value;
    }

    public void setValue(Object value) {
        this.value = value;
    }

}

现在我可以返回一个响应实体:

return new ResponseEntity<ValueResource>(new ValueResource(hasDependencies), responseHeaders, HttpStatus.OK);

它给出了一个布尔值:

TechnologyService.hasDependencies($stateParams.technologyId, function(data) {
  console.log("hasDependencies", data.value);
});
 类似资料:
  • 问题内容: 为什么我返回的是JavaScript函数中的布尔变量,为什么在调用函数中将其检测为字符串,但是如果我返回布尔文字,则调用函数会将其检测为布尔值? 因此,例如: 问题答案: 您无需声明状态变量。 因此,全局一个()被覆盖。 但是,[HTML5规范]将该属性定义为DOMString: 因此,它具有一个设置器(公开的或内部的),用于存储字符串化的值。 要解决此问题,只需使用语句声明您的局部变

  • 我正在尝试使用JsonObject将java对象转换为String。以下是我用来添加属性的代码: 这里最后一个属性条件是Long值的列表,下面是检索到的响应: 调味品的预期产量如下: 我应该怎么做才能获得JSON数组而不是字符串形式的调味品?

  • 问题内容: 我有以下收藏 我要收集所有其 在主阵列 我已经试过了 但这给了我这样的输出 我想要这样的输出 问题答案: 你可以。与mongoose一起使用,因为它返回一个数组,与使用相比,简单使用更好 或使用核心驱动程序中的基础: 如果您不希望获得“与众不同”的结果,则与之大致相同: 或与 您还可以使用,基本上可以改变聚合过程和“幕后”(“仅返回字段部分”,而不是独特的聚合方法): MongoDB本

  • 问题内容: Java中有没有一种方法可以从以下数学表达式获得结果: 另一方面,解析算术表达式的最佳方法是什么? 问题答案: 你可以将其传递给如下所示: 你将要确保评估的字符串来自受信任的来源,并采取通常的预防措施,否则,它将立即起作用。 如果你想采用更复杂(但更安全)的方法,则可以使用ANTLR(我怀疑这是一个数学语法的起点),然后实际自己编译/解释该语句。

  • 问题内容: 我在MySQL数据库中有一个表字段: 因此,我使用以下查询将其调用到我的页面: 然后,为了处理结果,我要做: 现在,如果我这样做: 我得到一个字符串。 这不是整数吗? 问题答案: 当您使用PHP从MySQL数据库中选择数据时,数据类型将始终转换为字符串。您可以使用以下代码将其转换回整数: 或使用功能: