在调用方法时,UI不显示任何内容

时间:2014-04-20 08:00:31

标签: java javascript json angularjs rest

我的设置:

我想调用一个从UI接受字符串的java方法,返回一个JSON字符串。此方法需要5秒以上的时间来计算并返回JSON字符串。当我使用UI作为参数输入时,此方法甚至不被调用:我确认这是因为某些文件是在本地创建的,而这些文件没有被创建。

我的项目是使用 AngularJS with Spring 设置的,该端口工作正常。

Setter方法:

public void setBrand(String brand) {
this.brand  = AmazonReview.getAmazonReview(this.brand);
  }

Getter方法:

public String getBrand() {
    return brand;
  }

AmazonReview方法 // 这是执行所有计算并返回JSON

的方法
public static String getAmazonReview(String s){
...;
Process p1 = Runtime.getRuntime().exec("./something.pl com " + id);
...;
JSONObject obj = new JSONObject();
obj.put("product1", l1);
return obj.toJSONString();
}

前端

我只是从用户那里获取输入(在文本框中)这里没什么好看的!

<form novalidate class="form-horizontal" ng-submit="save()">
    <div class="control-group">
        <label class="control-label" for="brand">Brand</label>
        <div class="controls">
            <input type="text" ng-model="brand.brand" id="brand"/>
        </div>
    </div>
    <fieldset>
        <legend>Brand Description</legend>
        <div class="control-group">
            <label class="control-label" for="brandDescription">Brand Description</label>
            <div class="controls">
                <input type="text" ng-model="brand.brandDescription.brandDescription" id="brandDescription"/>
            </div>
        </div>
    </fieldset>
    <button id="save" class="btn btn-primary">Save</button>
</form>

App.js

angular.module("sprang", ["sprang.services"]).
    config(function ($routeProvider) {
        $routeProvider
            .when('/brands', {templateUrl: '/views/brands/list.html', controller: BrandListController})
            .when('/brands/:brandId', {templateUrl: '/views/brands/detail.html', controller: BrandDetailController});
    });

function BrandListController($scope, Brand) {
        $scope.brands = Brand.query();
        $scope.deleteBrand = function(brand) {
            brand.$delete(function() {
                $scope.brands.splice($scope.brands.indexOf(brand),1);
                toastr.success("Deleted");
            });
        }
    }

function BrandDetailController($scope, $routeParams, $location, Brand) {
        var brandId = $routeParams.brandId;
        if (brandId === 'new') {
            $scope.brand = new Brand();
        } else {
            $scope.brand = Brand.get({brandId: brandId});
        }
        $scope.save = function () {
            if ($scope.brand.isNew()) {
                $scope.brand.$save(function (brand, headers) {
                    toastr.success("Created");
                    var location = headers('Location');
                    var id = location.substring(location.lastIndexOf('/') + 1);
                    $location.path('/brands/' + id);
                });
            } else {
                $scope.brand.$update(function() {
                    toastr.success("Updated");
                });
            }
        };
    }

我的问题:

1)如果我用返回“Hello”替换方法代码; 我的界面显示Hello

2)我只想将JSON(String)显示回前端。但它甚至没有运行方法让我这样做。

感谢您的帮助!

总结一下,当我在eclipse(来自另一个java程序)中调用我的慢速java方法时,我得到了预期的JSON 但是当我对UI(AngularJS)做同样的事情时,该方法未被调用

0 个答案:

没有答案