JBoss.orgCommunity Documentation

第 11 章 @FormParam

注意

RESTEasy @FormParam 注解支持不直接指定参数名

当输入请求体的类型为"application/x-www-form-urlencoded",也就是 HTML 表单时,可以将请求体中的单个表单参数注入到方法参数值中。

<form method="POST" action="/resources/service">
First name: 
<input type="text" name="firstname">
<br>
Last name: 
<input type="text" name="lastname">
</form>

如果你通过这个表单发送post请求,这个service可能是这个样子的:

@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) {...}