参数未在POST方法REST Java中传递

时间:2016-04-15 13:25:30

标签: java rest http content-type

所以,我正在开发一个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作为输出,意味着某种方式没有传递数据。我做错了吗?

以下是从Chrome浏览器的网络标签中捕获的标头文件: Request Header has the data. underlined with red

1 个答案:

答案 0 :(得分:1)

不要尝试从HttpServletRequest获取参数,而是使用@FormParam

@POST
public void putHtml(@FormParam("id") String id,
                    @FormParam("data") String data) {
}

原因是实体正在被读取,导致HttpServletRequest中的参数为空。