所以,我正在开发一个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
}
}
问题是line1和line2给出null作为输出,意味着某种方式没有传递数据。我做错了吗?
答案 0 :(得分:1)
不要尝试从HttpServletRequest
获取参数,而是使用@FormParam
@POST
public void putHtml(@FormParam("id") String id,
@FormParam("data") String data) {
}
原因是实体正在被读取,导致HttpServletRequest
中的参数为空。