由于在此应用程序中动态创建html表单元素,因此不知道元素的数量。如何使用@FormParam注释获取元素信息?例如,以下代码获取两个表单元素的信息:
@POST
@Path("/newpage")
@Produces("text/html")
public String func(@FormParam("element1") String firstElement,
@FormParam("element2") String secondElement) throws IOException
{
// your code goes here
}
这是不可能的,因为我们不知道元素的数量。
答案 0 :(得分:4)
我无法想到使用@FormParam
执行此操作的方法,但您可以使用@Context
访问HttpServletRequest
(引用所有表单参数的地图):
// you can make this a member of the Resource class and access within the Resource methods
@Context
private HttpServletRequest request;
@POST
@Path("/newpage")
@Produces("text/html")
public String func() throws IOException
{
// retrieve the map of all form parameters (regardless of how many there are)
final Map<String, String[]> params = request.getParameterMap();
// now you can iterate over the key set and process each field as necessary
for(String fieldName : params.keySet())
{
String[] fieldValues = params.get(fieldName);
// your code goes here
}
}
答案 1 :(得分:3)
正确的答案实际上是使用MultivaluedMap参数捕获主体(使用Jersey测试)
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.TEXT_HTML)
public String post(MultivaluedMap<String, String> formParams)
{
... iterate over formParams at will