получить данные из формы в jsp

У меня есть форма в моем jsp, в которой нет фиксированного количества полей. Пользователь может добавить столько строк, сколько пожелает. Это мой код формы:

<form class="metrics_values"  action="refreshMetrics.jsp" method="POST">
   <div id="userId">User test id: <input type="text" name="userId" /> <input class="none" type="submit" value="Submit"></div>

            <div class="rowWrapper">
                <div class="row mName">
                    <input list="metrics" placeholder="Metric Name" name="metric_name" />
                    <datalist id="metrics">
                        <option value="userAgent">
                        <option value="header">
                        <option value="sni">
                        <option value="isversion_1_1">
                        <option value="sslVersion">
                        <option value="contenttype">
                        <option value="days">
                        <option value="server">
                        <option value="expip">
                        <option value="expauth">
                        <option value="expectmatch">
                        <option value="username">
                        <option value="password">
                        <option value="dbname">
                        <option value="redirectionFlag">
                        <option value="noDnsCache">
                        <option value="redirectionFlag">
                    </datalist>
                </div>  
        <div class="row mvalue">
                     <input type="text" placeholder="Metric Value" name="metric_value" />
                </div>
            </div>            
    </form>     
    <a href="#" title="add row" class="add-row">+</a>

И jQuery для добавления строки:

 jQuery(function(){
      var counter = 1;
      jQuery('a.add-row').click(function(event){
        event.preventDefault();
        counter++;
        var newRow = jQuery('<div class="rowWrapper"><div class="row mName"> <input list="metrics" placeholder="Metric Name" name="metric_name"/> </div><div class="row mvalue"><input type="text" placeholder="Metric Value" name="metric_val"/></div></div>');
        jQuery('form.metrics_values').append(newRow);
      });
     });

Я пытался получить данные с помощью этого:

     Enumeration<String> paramNames = request.getParameterNames();
            while (paramNames.hasMoreElements()) {
                String paramName = (String) paramNames.nextElement();
                out.print("<tr><td>" + paramName + "</td>\n");
                String paramValue = request.getHeader(paramName);
                out.println("<td> " + paramValue + "</td></tr>\n");
            }

но он возвращает null для paramValue.

Любые идеи?


person Arno    schedule 22.02.2016    source источник
comment
getHeader(), как следует из названия, возвращает заголовок HTTP, а не параметр HTTP. Используйте getParameter() или getParameterValues(). Почитайте джавадок.   -  person JB Nizet    schedule 22.02.2016


Ответы (1)


попробуй это :

String[] names = request.getParameterValues("metric_name");
String[] values = request.getParameterValues("metric_value");
for (int i = 0; i < names.length; i++) {
         System.out.print("<tr><td>" + names[i] + "</td>\n");
         System.out.println("<td> " + valuse[i] + "</td></tr>\n");
     }
person qiang.wei.kang    schedule 22.02.2016