2016-08-03 83 views
0

我有2個頁面一個是.jsp,另一個是.html。兩者都有兩個文本框和一個按鈕。在按鈕上單擊我使用angularjs調用post方法。但是,當我使用.jsp頁面時,它工作正常,但同樣的事情不適用於.html。如何從html + angularjs頁面調用Spring的控制器?

這裏我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/" /> 

考慮我作爲一個初學者,我的self..facing挑戰學習。任何人有任何解決方案請回答。

回答

0

您的角度應用程序(前端)和您的Spring應用程序(後端)彼此沒有任何知識。儘管如此,他們可以溝通,只要設置正確。 $ http.post()的第一個參數是一個URL。不過,您提供了「springAngularJS」,它只是您嘗試點擊的網址的結尾。所以這需要解決。

例如,您的Spring應用程序很可能在您的本地主機上運行,​​例如在端口8000上。因此,在本例中,您的Spring應用程序將在http://localhost:8000處可用。把它想象成你的Spring應用程序的基礎URL。當您在Spring中使用以下注釋@RequestMapping(value="/springAngularJS",method=RequestMethod.POST)時,您所說的是,只要使用正確的主體/有效內容向http://locahost:8000/springAngularJS的服務器發出POST請求,就會運行該方法。它基本上將'value'參數添加到我之前提到的基礎url上。

因此,從您的角度應用程序,您需要擊中http://locahost:8000/springAngularJS,而不僅僅是springAngularJS

總之,將$http.post("springAngularJS",$scope.user)更改爲$http.post("http://locahost:8000/springAngularJS",$scope.user)(取決於您的服務器的實際url /端口)。

您還可以使用相對URL $ http.post,假設您的服務器和您的用戶界面服務於相同的URL /端口,在這種情況下,您可以簡單地執行$http.post("/springAngularJS",$scope.user)。請注意(相對)網址開頭的斜槓。

相關問題