2016-06-28 50 views
0

基本上我有一個使用AngularJS的前端和一個使用Java的後端。我需要能夠通過輸入框將前端的值發送到後端以便在Java中使用。通過AngularJS前端輸入框在Java中獲取值

我發現了一個簡單的例子,即:

的Java

package com.mkyong.rest; 
import javax.ws.rs.FormParam; 
import javax.ws.rs.POST; 
import javax.ws.rs.Path; 
import javax.ws.rs.core.Response; 

@Path("/user") 
public class UserService { 

@POST 
@Path("/add") 
public Response addUser(@FormParam("name") String name, 
     @FormParam("age") int age) { 

    return Response.status(200) 
      .entity("addUser is called, name : " + name + ", age : " + age) 
      .build(); 

    } 
} 

HTML

<html> 
<body> 
<h1>JAX-RS @FormQuery Testing</h1> 

<form action="rest/user/add" method="post" > 
<p>Name : <input type="text" name="name" /></p> 
<p>Age : <input type="text" name="age" /></p> 
<input type="submit" value="Add User" /> 
</form> 

</body> 
</html> 

我明白@FormParam部件和如何工作的,但我不明白的是@Path如何工作以及@POST。這是鏈接到表單操作,是這樣簡單還是有一些介於兩者之間?

如何工作/如果我的斷言是正確的一般性解釋將不勝感激。

回答

1

如果是的話,我從你的問題中得到了更多關於@POST@PATH的信息。比@POST告訴你像post, get, put, delete等請求的類型,這意味着你的addUser方法調用只有當POST請求來到服務器,但路徑應該正確。現在@PATH告訴你有關調用addUser方法的URL,在你的情況下,@Path("/user") public class UserService意味着每當請求到/ user它調用你的UserService類,進一步,如果我們有同樣的類中的多個方法,如adduser,deleteuser,getuser比你需要告訴服務器哪個方法調用URL,所以我們把@PATH放在方法上,我們的URL是表單。 例

@POST 
@Path("/add") 
public Response addUser 
//URL for aboue method is <baseURL>/user/add 
@POST 
@Path("/delete") 
public Response deleteUser 
//URL for above method is <baseURL>/user/delete 

我希望你下站在web服務的URL映射,您需要了解在Web服務URL映射進行更多的研究。

關於<baseURL>也依賴於web.xml配置。

+0

謝謝應用程序,這有很大幫助 – TheLimeTrees

+0

很樂意幫助你。 –

0

這裏需要注意的幾件事

1)表單動作中的URL是錯誤的。它應該是/用戶/添加

2)你不要有提到對角應用程序的任何JS文件。

首先,我們需要有一些像圖所示

var app = angular.module('app',[ 'ngRoute','ngResource']); 
+0

URL也依賴'web.xml'配置,我們不能說它是錯誤的,直到我們看到web.xml文件。你的第二點是valide,但他希望在@PATH和@POT上有更多的輸入。 –