在Java中访问嵌套的POST参数

时间:2018-03-16 12:59:10

标签: java servlets post url-parameters

如何在Java Servlet API中访问嵌套的POST数据?在PHP(我不能用于此项目)中,我能够使用$ds = $_POST['details']['double_sided'];

访问字段

我的表单中有以下输入:

    <div class="row">
        <div class="col-sm-6">
            <label for="details_double_sided" class="control-label">
                <input type="hidden" value="0" name="<portlet:namespace />details[double_sided]">
                <input type="checkbox" id="details_double_sided" value="1" name="<portlet:namespace />details[double_sided]"> Double Sided
            </label>

            <label for="details_stapled" class="control-label">
                <input type="hidden" value="0" name="<portlet:namespace />details[stapled]">
                <input type="checkbox" id="details_stapled" value="1" name="<portlet:namespace />details[stapled]"> Stapled
            </label>

            <label for="details_three_hole_punched" class="control-label">
                <input type="hidden" value="0" name="<portlet:namespace />details[three_hole_punched]">
                <input type="checkbox" id="details_three_hole_punched" value="1" name="<portlet:namespace />details[three_hole_punched]"> Three Hole Punched
            </label>
        </div>

        <div class="col-sm-6">
            <label for="details_copied_in_color" class="control-label">
                <input type="hidden" value="0" name="<portlet:namespace />details[copied_in_color]">
                <input type="checkbox" id="details_copied_in_color" value="1" name="<portlet:namespace />details[copied_in_color]"> Copied in Color
            </label>

            <label for="details_copied_on_color_page" class="control-label">
                <input type="hidden" value="0" name="<portlet:namespace />details[copied_on_color_page]">
                <input type="checkbox" id="details_copied_on_color_page" value="1" name="<portlet:namespace />details[copied_on_color_page]"> Copied on Color Paper (Please indicate paper color in special instructions)
            </label>
        </div>
    </div>

我尝试了多种方法,例如

String[] details = ParamUtil.get(request, "details[double_sided]", "0")

Object details = request.getAttribute("details");

String[] details = ParamUtil.getParameterValues(request, "details[]");

但它们似乎都返回null / empty值。

1 个答案:

答案 0 :(得分:0)

函数getParameter()需要您输入的字段的名称,代码为<portlet:namespace />details[double_sided]

如果这不起作用,您可以使用getParameterNames()获取已传递给servlet的所有参数名称,您可以迭代这些参数名称来检查输入,或getParameterMap哪个是包含地图的已发布到servlet的所有键和值。