POST 方法 REST Java 中未传递参数
Parameters not being passed in POST method REST Java
所以,我正在开发一个 Web 服务,当我在表单提交上调用 api/update 操作时,我的两个输入来自 jsp、"data" 和 "id"应该通过,我想在 POST 方法块中执行操作。
这里是调用方法的形式:
<form id="myForm" action="api/update" method="post">
id: <input type="text" id="id" name="id">
<br/>
<textarea id="data" name="data" rows="30" cols="100" placeholder="Empty File"></textarea>
<br/>
<button id="submit" type="submit">Submit</button>
</form>
这是 REST 代码:
@Path("update")
public class UpdateResource {
@Context
private UriInfo context;
public UpdateResource() {
}
@Context
private HttpServletRequest request;
@POST
public void putHtml() {
String data = request.getParameter("data");
String id = request.getParameter("id");
System.out.println(id); //<---- line1
System.out.println(data); //<---- line2
//further operations
}
}
问题是第 1 行和第 2 行将 null 作为输出,这意味着不知何故数据未被传递。我做错了什么吗?
这是从 chrome 浏览器的网络选项卡中捕获的头文件:
与其尝试从 HttpServletRequest
获取参数,不如使用 @FormParam
@POST
public void putHtml(@FormParam("id") String id,
@FormParam("data") String data) {
}
原因是实体body已经在读取,导致HttpServletRequest
中的参数为空。
所以,我正在开发一个 Web 服务,当我在表单提交上调用 api/update 操作时,我的两个输入来自 jsp、"data" 和 "id"应该通过,我想在 POST 方法块中执行操作。
这里是调用方法的形式:
<form id="myForm" action="api/update" method="post">
id: <input type="text" id="id" name="id">
<br/>
<textarea id="data" name="data" rows="30" cols="100" placeholder="Empty File"></textarea>
<br/>
<button id="submit" type="submit">Submit</button>
</form>
这是 REST 代码:
@Path("update")
public class UpdateResource {
@Context
private UriInfo context;
public UpdateResource() {
}
@Context
private HttpServletRequest request;
@POST
public void putHtml() {
String data = request.getParameter("data");
String id = request.getParameter("id");
System.out.println(id); //<---- line1
System.out.println(data); //<---- line2
//further operations
}
}
问题是第 1 行和第 2 行将 null 作为输出,这意味着不知何故数据未被传递。我做错了什么吗?
这是从 chrome 浏览器的网络选项卡中捕获的头文件:
与其尝试从 HttpServletRequest
获取参数,不如使用 @FormParam
@POST
public void putHtml(@FormParam("id") String id,
@FormParam("data") String data) {
}
原因是实体body已经在读取,导致HttpServletRequest
中的参数为空。