【问题标题】:How to invoke a Spring's controller from html+angularjs page?如何从 html+angularjs 页面调用 Spring 的控制器?
【发布时间】:2016-12-09 15:09:15
【问题描述】:

我有 2 页,一个是 .jsp,另一个是 .html。两者都有两个文本框和一个按钮。单击按钮时,我正在使用 angularjs 调用 post 方法。但是当我使用 .jsp 页面时,它工作正常,但同样的事情不适用于 .html。

这里是我的 Spring 控制器 -

@RequestMapping(value="/springAngularJS",method=RequestMethod.POST)
 public String addUser(@RequestBody User user)
   {
   System.out.println("Adding user dtl....");
   }

这是我的jsp页面-

$http.post("springAngularJS",$scope.user).
  success(function(data, status, headers, config) {
      $scope.person = data;
  }).
  error(function(data, status, headers, config) {
      alert( "Exception details: " + JSON.stringify({data: data}));
  });

我的 .html 文件的代码也相同。但是上面的方法是有效的,但是当我处理 .html 时它不是。 我还将添加我的 XML 文件详细信息-

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/views/" />
      <property name="suffix" value=".jsp"/>
</bean>
<mvc:resources mapping="/views/**" location="/WEB-INF/views/" />

把我当作一个初学者,自己学习……面对挑战。谁有解决办法请回答。

【问题讨论】:

    标签: java angularjs spring model-view-controller


    【解决方案1】:

    您的 Angular 应用程序(前端)和您的 Spring 应用程序(后端)对彼此一无所知。但是,只要一切设置正确,它们就可以通信。 $http.post() 的第一个参数是一个 URL。但是,您提供了“springAngularJS”,它只是您尝试点击的网址的结尾。所以这需要修复。

    您的 Spring 应用程序可能正在您的 localhost 上运行,例如在端口 8000 上。因此,在此示例中,您的 Spring 应用程序将在 http://localhost:8000 可用。将其视为 Spring 应用程序的基本 url。当您在 Spring 中使用以下注解 @RequestMapping(value="/springAngularJS",method=RequestMethod.POST) 时,您的意思是每当使用正确的正文/有效负载向您的服务器 http://locahost:8000/springAngularJS 发出 POST 请求时,该方法就会运行。它基本上将“值”参数添加到我之前提到的基本 url。

    因此,从您的 Angular 应用程序中,您需要点击 http://locahost:8000/springAngularJS,而不仅仅是 springAngularJS

    总而言之,将$http.post("springAngularJS",$scope.user) 更改为$http.post("http://locahost:8000/springAngularJS",$scope.user)(取决于您服务器的实际url/端口)。

    您还可以为 $http.post 使用相对 url,假设您的服务器和您的 ui 是从同一个 url/端口提供服务的,在这种情况下,您可以简单地使用$http.post("/springAngularJS",$scope.user)。请注意(相对)url 开头的斜杠。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 2019-10-16
      • 1970-01-01
      相关资源
      最近更新 更多