当你以application/x-www-form-urlencoded格式去编码,并将这些内容放在请求的实体(request body)中,例如html的form表单。你可以将自主定制的参数传入到方法的参数中。
<form method="POST" action="/resources/service">
First name:
<input type="text" name="firstname">
<br>
Last name:
<input type="text" name="lastname">
</form>
如果你是使用form的表单提交,服务端将会是下边的形式
@Path("/")
public class NameRegistry {
@Path("/resources/service")
@POST
public void addName(@FormParam("firstname") String first, @FormParam("lastname") String last) {...}
当FormParam以默认的application/x-www-form-urlencoded形式提交后在服务端不能反序列化MultivaluedMap<String,String>,这是非法的。
@Path("/")
public class NameRegistry {
@Path("/resources/service")
@POST
@Consumes("application/x-www-form-urlencoded")
public void addName(@FormParam("firstname") String first, MultivaluedMap<String, String> form) {...}
第11章完