服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

jsp:javascript 实现输入多行动态输入


  一般,我们用
  request.getparameter("value");
  来获得静态html输入的值.然后不要忘记判断是否为空,是否含有特殊字符等.
  
  还可以用
  enumeration paramnames=request.getparameternames();
  while(paramnames.hasmoreelements()){string paramname=(string)paramnames.nextelement();}
  来收集<input type="text" name="name"/>中的name
  
  但是我们每增加新的一行,参数名同上一行一样,那么,我们将如何获得value的值?
  这里我又去看书(servlet 和 jsp 核心编程,极好的一本书,该讲的都讲了,读明白了它servlet/jsp也就可以说精通了)p70页里面:getparametervalues()返回字符串数组,然后我们用循环判断这个字符串数组的长度,再就是获得值了:)
  
  
  request.getparameter("value");//这个最熟悉,获得文本框的值
  (enumeration)request.getparameternames();//获得文本框的名字
  (string[])request.getparametervalues(paramname);//获得静态html页相同的参数(多次出现)的值
  
  *************html 页 javascript 代码:
  <script language="javascript">
  function tbladdrow()
  {
  var i=lines.rows.length;
  var row = table1.insertrow(table1.rows.length);
  var col = row.insertcell(0);
  col.innerhtml = "<input id=line["+i+"][name1] name=line"+i+"name1 size=10>";
  col = row.insertcell(1);
  col.innerhtml = "<input id=line["+i+"][name2] name=line"+i+"name2 size=10>";
  col = row.insertcell(2);
  col.innerhtml = "<input id=line["+i+"][name3] name=line"+i+"name3 size=10>";
  col = row.insertcell(3);
  col.innerhtml = "<input id=line["+i+"][name4] name=line"+i+"name4 size=10>";
  }
  function tbladdrows(items)
  {
  for( i = 1 ; i <= items ; i++)
  {
  tbladdrow();
  }
  }
  function delrow()
  {
  if(lines.rows.length==0)
  {
  return false ;
  }
  lines.deleterow();
  }
  
  </script>
  
  ****************html页其它代码:
  <html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=big5">
  <title>??入</title>
  </head>
  <body>
  <form action="getinput.jsp">
  <div align=center><font size=2>??入?y??</font></div></td>
  <td width=412 bgcolor=#e4e4e4>
  <table id=table1 cellspacing=0 bordercolordark=#ffffff cellpadding=0
  width=350 align=center bordercolorlight=#000000 border=1>
  <tbody>
  <tr bgcolor=#999999>
  <th width=94><font size=2>???狄?</font></th>
  <th width=84><font size=2>???刀?</font></th>
  <th width=85><font size=2>???等?</font></th>
  <th width=77><font size=2>???邓?</font></th></tr>
  <tbody id=lines name="lines"><!--
  <tr>
  <td><input id="things_name" type="text" name="things_name" size="15"></td>
  <td><input id="things_model" type="text" name="things_model" size="10"></td>
  <td><input id="things_number" type="text" name="things_number" size="5"></td>
  <td><input id="things_unit" type="text" name="things_unit" size="5"></td>
  </tr>
  --></tbody></table>
  <div align=center><br></div>
  <div align=center>
  <input id=items type=hidden value=1 name=items> <input onclick=tbladdrow(items.value);
  
  type=button value=新增一行 name=insert/>
  <font color="#e4e4e4"> </font>
  <input language=javascript onclick="return delrow()" type=button value=?h除一行 name=del/>
  </div></td></tr></tbody></table>
  <input type="submit" value="commit"/>
  </form>
  </body>
  </html>
  
  ***jsp页收集输入
  <%@ page contenttype="text/html;charset=big5"%>
  <%@ page import="java.util.*"%>
  
  <%
  request.setcharacterencoding("big5");
  
  enumeration paramnames=request.getparameternames();
  string paramname=null;
  while(paramnames.hasmoreelements()){
  paramname=(string)paramnames.nextelement();
  
  string param=request.getparameter(paramname);
  
  //out.println(paramname+"  "+param+"<br>");
  
  string paramvalues[]=request.getparametervalues(paramname);
  for(int i=0; i<=paramvalues.length-1; i++)
  {
  out.println(paramname+" ");
  out.println(paramvalues[i]+"<br>");}
  
  }
  
  
  
  //out.println("<br>"+name);
  
  %>
  <html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=big5">
  <title>接受??入</title>
  </head>
  <body>
  </body>
  </html>

扫描关注微信公众号