2016-02-22 78 views
0

我的表單在我的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"); 
      } 

,但它返回nullparamValue

任何想法?

+1

getHeader(),顧名思義,返回一個HTTP報頭,而不是一個HTTP參數。使用getParameter()或getParameterValues()。閱讀javadoc。 –

回答

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"); 
    } 
+0

它的工作,謝謝! – Arno