【问题标题】:Get all html form param name & value using jersey使用 jersey 获取所有 html 表单参数名称和值
【发布时间】:2011-11-16 10:35:05
【问题描述】:

我有一个 html 表单,其中包含这样的元素

<input type="text" value="Val1" name="Name1"/>
<input type="text" value="Val2" name="Name2"/>
<input type="hidden" value="Val3" name="Name3"/>

在服务器端,我使用 Jersey 实现来捕获表单名称和值。有没有办法像这样在单个地图中捕获上述所有内容

名称1 ==> Val1 名称2 ==> Val2 Name3 ==> Val3

我知道使用@FormParam,我可以在变量中捕获表单值。但我需要捕获表单元素名称和值。

感谢任何帮助。

【问题讨论】:

    标签: java jersey jax-rs


    【解决方案1】:

    给你的方法一个MultivaluedMap&lt;String,String&gt;类型的参数。实现需要为此类型提供MessageBodyReader,以响应媒体类型application/x-www-form-urlencoded(规范的§4.2.4)。所以像:

    @POST
    @Consumes("application/x-www-form-urlencoded")
    public Response foo(MultivaluedMap<String, String> form) {
        ...
    }
    

    【讨论】:

    • 感谢您的回答。我可以使用您的建议获得所有值。只是好奇,是否可以在单独的地图中捕获所有隐藏的表单元素并在单独的地图中捕获所有文本字段?
    • @pra 您必须为此创建自己的MessageBodyReader
    【解决方案2】:

    仅供参考 - 您也可以使用 com.sun.jersey.api.representation.Form 代替 MultivaluedMap - 它本质上是一样的。

    【讨论】:

      猜你喜欢
      • 2018-03-30
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 2015-04-13
      • 2020-05-27
      • 1970-01-01
      • 2021-11-27
      相关资源
      最近更新 更多