【问题标题】:call java Controller from angularJs从 angularJs 调用 java Controller
【发布时间】:2018-02-19 17:28:13
【问题描述】:

这是我的情况,我在 Netbeans 8.2 中有一个项目,在 html 中,这里调用 angularjs,但是当需要从 angular 调用 java 控制器时,我们在 chrome 调试中收到“未找到”,在工厂中使用 $ http发送“url”,但我不能调用java控制器。

-- 这是代码html

<div data-ng-app="myApp">
<div data-ng-controller="MyController">
<button data-ng-click="getDataFromServer()">Test Angularjs</button>
</div>
</div>

-- 这是angularjs中的代码(这是一个File.js)

var app = angular
        .module('myApp', ['ngRoute', 'ngResource'])

        .controller('MyController', function ($scope, $service, $http, $resource) {          
            $scope.getDataFromServer = function () {

                $service.JS_STST_GetData();
            }

        })// end controller    
.factory(
        '$service',
        function ($http) {
            return {
                JS_STST_GetData: function (){
                    $http({
                        method: 'POST',
                        url: 'TestMaping',
                        headers: {
                            'Content-Type': 'application/json'
                        }
                    }).then(_success, _error);
                },

-- 这是Java控制器代码

@Controller
public class VerController {

    @RequestMapping(value="/TestMaping", method = RequestMethod.POST)
    public String TEST(Model model){
        return "Test";
    }

    @RequestMapping(method = RequestMethod.GET)
    public String otroMetodo(Model model){
        return "index";
    }
}

【问题讨论】:

  • 您正在向仅接受 GET 请求的控制器发送 POST 请求。这可能是问题所在。
  • 你的代码在我的机器上运行,GET 请求从文件中提取数据。我希望你已经定义了_sucess_error 函数。假设你的 JS 代码一切正常,我希望你在开头添加一个斜杠url: '/TestMaping',

标签: java angularjs model-view-controller controller


【解决方案1】:

您正在进行POST 调用,而您的控制器请求映射的方法类型为GET 用于url /TestMaping。请更正并尝试。

【讨论】:

  • 感谢您的观察,但不是解决方案。
  • 尝试在你的控制器中放置一个完整的 URL (loclahost:port...) 而不仅仅是 /TestMapping
  • 谢谢,但它不起作用,这是消息:angular.js:12407 POST localhost:8080/EjSpringMVC/TestMaping 404(未找到)。我不知道我是否需要配置一些东西。
  • 为了确保控制器正在初始化,请在构造函数上调试或打印VerController 的构造函数的语句
  • 如何定义构造器,因为我是基于一个例子,不记得有一个构造器。
猜你喜欢
  • 2019-10-08
  • 1970-01-01
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
  • 2013-11-03
  • 1970-01-01
  • 2019-04-20
  • 1970-01-01
相关资源
最近更新 更多