在java

时间:2017-02-05 12:16:53

标签: javascript java hibernate

我正在使用Javascript函数生成以下输入文本框。每个文本框都有一个唯一的ID,该ID将增加以及如下所示的唯一名称。

<input type="text" class="form-control" indexed="true" id="skills_0" name="skills_0">
<input type="text" class="form-control" indexed="true" id="skills_1" name="skills_1">
<input type="text" class="form-control" indexed="true" id="skills_2" name="skills_2">

我想在我的控制器的此文本框中检索用户填写的值。我正在使用Hibernate框架。 通常在Hibernate中,我习惯按如下方式检索值:

String name=request.getParameter("name");

但我很困惑如何在控制器端检索这个动态生成的文本框的值。我怎么知道用户在我的控制器上添加了多少技能?即用户在运行时生成的文本框数量。

1 个答案:

答案 0 :(得分:0)

在Http中,仅使用输入的名称属性发送<form>

<input name="someName" value="someValueOfsomeNameInput"/>

所以在请求中它通常看起来像...&someName=someValueOfsomeNameInput - 它没有使用&#34; id&#34;在发送请求时。

使用不同的&#34; name&#34;生成输入。对于每一个,或迭代请求中所有参数的列表,并检查是否有您需要的参数。

输入中的所有参数都将被发送,因此为了获取列表,您可以为名称添加一些前缀,并检查参数是否以此唯一前缀开头,因此您可以通过此前缀将它们组合在一起。您也可以尝试使用相同的名称&#34;对于每个参数,那么它们可能会作为列表聚集在一起。这是一段代码片段,它迭代请求中的所有参数,使用它来检查您在请求中获得的参数以及它们的结构。

    public void sysoRequestParameters(HttpServletRequest req) throws IOException {

                Enumeration<String> parameterNames = req.getParameterNames();
                while (parameterNames.hasMoreElements()) {
                    String paramName = parameterNames.nextElement();
                    System.out.println("--------------------------");
                    System.out.println("parameter name = " + paramName);
                    String[] paramValues = req.getParameterValues(paramName);
                    System.out.println("parameter values:");
                    for (int i = 0; i < paramValues.length; i++) {
                        String paramValue = paramValues[i];
                        System.out.println(paramValue);
                    }
                }
                out.close();
            }

   }