0

我在 JSP 页面中有下面提到的代码。我能够将下面文本框中的所有值保存到数据库中。但是,我阅读了我的 servlet (request.getParameter()) 中的每个文本框名称来保存字段。是否可以改进此代码?例如:将一个特定列的所有值保存在一个数组中并保存到数据库。如果是; 请举一个对我有帮助的例子。如果行为空,如何忽略。例如,用户仅填写两行,其余行为空。我只想在数据库中保存前两行。

<table class="cmn-table" id="t1" border="1" style="margin-left: 0.2em; margin-    right:0em">
 <col width="5%">
   <col width="18%">
   <col width="18%">
   <col width="18%">
   <col width="18%">
   <col width="18%">
  <tr>    
   <th>Sl.No</th>
   <th>Source IP Address</th>
   <th>Destination IP Address</th>
   <th>Service and Port (TCP, UDP, etc.)</th>
   <th>Start Date</th>
   <th>Expiration Date</th>
   </tr>
  <tr>
  <td style="align:center"> 1 </td>
 <td><input type="text" name="name" id="name" size="20"> </td>
  <td><input type="text" name="name1" id="name1" size="20"> </td>
  <td><input type="text" name="name2" id="name2" size="20"> </td>
  <td><input type="text" name="name3" id="name3" size="15"> <img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name3','MMddyyyy','dropdown',false,'12')" /></td>
  <td><input type="text" name="name4" id="name4" size="15"><img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name4','MMddyyyy','dropdown',false,'12')" /> </td>
  </tr>
   <tr>
  <td style="align:center"> <label> 2 </label> </td>
  <td><input type="text" name="name5" id="name" size="20"> </td>
  <td><input type="text" name="name6" id="name" size="20"> </td>
  <td><input type="text" name="name7" id="name" size="20"> </td>
  <td><input type="text" name="name8" id="name3" size="15"> <img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name3','MMddyyyy','dropdown',false,'12')" /></td>
  <td><input type="text" name="name9" id="name4" size="15"><img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name4','MMddyyyy','dropdown',false,'12')" /> </td>
  </tr>
   <tr>
   <td> <label> 3 </label> </td>
  <td><input type="text" name="name10" id="name" size="20"> </td>
  <td><input type="text" name="name11" id="name" size="20"> </td>
  <td><input type="text" name="name12" id="name" size="20"> </td>
 <td><input type="text" name="name13" id="name3" size="15"> <img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name3','MMddyyyy','dropdown',false,'12')" /></td>
  <td><input type="text" name="name14" id="name4" size="15"><img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name4','MMddyyyy','dropdown',false,'12')" /> </td>
  </tr>
   <tr>
   <td> <label>4 </label> </td>
  <td><input type="text" name="name15" id="name" size="20"> </td>
  <td><input type="text" name="name16" id="name" size="20"> </td>
  <td><input type="text" name="name17" id="name" size="20"> </td>
 <td><input type="text" name="name18" id="name3" size="15"> <img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name3','MMddyyyy','dropdown',false,'12')" /></td>
  <td><input type="text" name="name19" id="name4" size="15"><img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name4','MMddyyyy','dropdown',false,'12')" /> </td>
  </tr>
     <tr>
    <td> <label>5 </label> </td>
  <td><input type="text" name="name20" id="name" size="20"> </td>
  <td><input type="text" name="name21" id="name" size="20"> </td>
  <td><input type="text" name="name22" id="name" size="20"> </td>
  <td><input type="text" name="name23" id="name3" size="15"> <img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name3','MMddyyyy','dropdown',false,'12')" /></td>
  <td><input type="text" name="name24" id="name4" size="15"><img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name4','MMddyyyy','dropdown',false,'12')" /> </td>
  </tr>

</table>
4

1 回答 1

1

据我了解,您希望摆脱在所有输入字段上调用 ​​request.getParameter 。

你为什么不在下面使用:

request.getParameterMap()

这为您提供了所有参数名称和值的映射。因此,您可以遍历映射,映射中的键是参数名称,该键的值是/是该参数的值。它是对地图的简单迭代。在遍历地图时,您实际上也可以根据空检查等其他检查来准备数据库查询。

于 2013-06-26T19:27:13.567 回答