基本上我有一个使用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。这是否与表单操作相关联,是否就是这么简单还是介于两者之间?
关于这是如何工作的一般解释/如果我的断言是正确的将不胜感激。
答案 0 :(得分:1)
如果您愿意,我可以从您的问题中获得更多关于@POST
和@PATH
的内容。比@POST
告诉你post, get, put, delete
等请求的类型,这意味着只有当POST请求到达服务器但路径应该正确时才调用addUser方法。现在@PATH
告诉您有关调用addUser
方法的网址,在您的情况下,@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
我希望你站在webservice中的URL映射,你需要更多关于web服务中的URL映射的研究。
关于<baseURL>
也取决于web.xml配置。
答案 1 :(得分:0)
这里需要注意的事情
1)表单操作中的URL错误。它应该是/ user /添加 到
2)你没有任何关于角度应用程序的JS文件。
要启动应用程序,我们需要具有如下所示的内容
var app = angular.module('app',[ 'ngRoute','ngResource']);