`

JSP用中收集数据:javascript 实现输入多行动态输入

阅读更多

在网上找了一下,只有一篇此类文章,还是php的,害得我要特意去看一下php,感觉很不好,是一种弱类型的语言,可以不声明就使用,因此,还要在每个变量前加$.不知道那些高手们为什么不谈谈自己写过报关系统等时候,一次性动态输入多行数据的经历.

一般,我们用
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>輸入測試</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>&nbsp;&nbsp;
      <INPUT language=javascript onclick="return delrow()" type=button value=刪除一行 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> 

分享到:
评论

相关推荐

    javascript 实现输入多行动态输入

    本文详细介绍了如何使用JavaScript实现输入多行动态输入的方法,包括前端页面的动态生成以及后端对这些动态数据的处理。这种方式不仅提高了用户体验,还极大地简化了开发人员的工作量。通过上述步骤,您可以轻松地在...

    jsp表单制作.rar_html_jsp_jsp 制作表单_jsp开发_jsp表单制作

    通过学习这些知识点,开发者可以熟练地用HTML和JSP创建交互式表单,实现用户数据的收集和处理。在实际项目中,还需结合CSS和JavaScript优化表单的样式和交互体验,使表单更加用户友好。同时,了解MVC(模型-视图-...

    jsp javascript html 技术讲座 实例

    在“jsp javascript html 技术讲座 实例”中,JavaScript是核心知识点之一,它用于实现页面的动态效果和交互功能。 1. 变量与数据类型:JavaScript支持基本数据类型(如字符串、数字、布尔值)和引用数据类型(对象...

    JavaScript/HTML—FORM用户输入/提交数据的图形界面

    在给定的文件"文本和提交.html"中,可能包含了更多关于如何结合HTML和JavaScript实现用户输入/提交数据的例子。这可能涉及到更复杂的表单结构、数据验证逻辑、以及与服务器的交互过程。学习和理解这些内容对于提升...

    JSP快速入门教程

    - **多行文本域**(`&lt;textarea&gt;`):用于输入多行文本。 通过上述介绍,我们可以看出,JSP作为JavaEE框架中的一个重要组成部分,不仅提供了强大的动态页面生成能力,还与Servlet、JDBC等技术紧密配合,共同构建出...

    JAVAEE编程题JAVAEE编程题.doc

    4. JSP 动态加载:`&lt;jsp:include&gt;` 动作标记可以动态地在主页面 `main.jsp` 中加载子页面 `lader.jsp`。`param` 子标记可以传递参数,例如梯形的上底、下底和高,子页面接收到这些参数后计算梯形面积并显示。 5. ...

    JSP记事本程序

    - **JSP技术**:JSP是Servlet技术的一个扩展,主要用于Web开发中动态网页的生成,可以将HTML、XML、JavaScript和Java代码混合使用,以创建动态Web应用程序。 - **数据库交互**:通过Java的JDBC API(Java Database ...

    form 表单(包含form所有表单元素)

    6. **textarea**:多行文本框,用于输入多行文本。 7. **submit**:提交按钮,用来提交表单数据到指定的URL。 8. **reset**:重置按钮,用于清除表单中的所有输入。 `&lt;form&gt;`标签定义了表单的基本结构和行为。它的...

    web组建开发指南

    - **日期组件的jsp**:在JSP页面中使用日期组件展示和收集日期数据。 - **日期默认值设置**:为日期组件设置默认值或最小/最大值限制。 5. **注意事项**: - 处理日期时要考虑不同的时区问题。 - 要注意不同...

    ext 的ppt ext 的ppt ext 的pptext 的pptext 的ppt

    表单是任何Web应用中收集用户输入的关键部分,而Ext JS提供了一套完整的工具来帮助开发者创建、验证和提交表单数据。 首先,我们注意到描述中提到了一些常见的问题,如Grid不显示数据,这可能由于JSON数据格式错误...

    html表单和数据完整性

    - **前端验证**:使用JavaScript对用户输入进行实时检查,确保数据格式正确。 - **后端验证**:服务器端的验证更为关键,即使前端已经进行了验证,也应在服务器端再次确认数据的有效性和安全性。 - **数据加密**:...

    表单自定义一

    3. **JavaScript交互**:利用JavaScript,我们可以实现更复杂的动态功能,如验证用户输入、实时更新显示、提交前的确认对话框等。例如,`addEventListener`可以监听用户的事件,如点击或输入,然后执行相应的函数。 ...

    教学实施大纲(javaWEB方向)

    - **使用ArrayList动态存储数据**:ArrayList是基于动态数组实现的集合类。 - **使用LinkedList动态存储数据**:LinkedList是基于双向链表实现的集合类。 - **使用HashSet动态存储数据**:HashSet不允许重复元素,...

    struts2标签使用笔记

    它们通常与Struts2的Action和模型对象进行数据绑定,以便于收集用户输入的数据并传递给后端处理。 例如,`&lt;s:textfield&gt;`用于创建文本输入框,`&lt;s:select&gt;`用于创建下拉列表,而`&lt;s:datepicker&gt;`则用于创建日期选择...

    JSF UI 组件详解

    它负责收集用户提交的数据,并将其发送给服务器进行处理。 #### 九、图形组件 - **HtmlGraphicImage**:用于显示图像,可以通过指定URL来加载外部资源。 #### 十、面板组件 - **HtmlPanelGrid** 和 **...

    strtus1_html标签

    这些Struts1的HTML标签提供了丰富的功能,可以满足Web应用中表单数据的收集与处理需求。通过合理的属性配置和事件绑定,开发者可以轻松实现表单的动态交互效果,提高用户体验。同时,这些标签的使用也简化了前端开发...

    asp考试题目

    1. 表单是网页中用于用户输入数据的基本组件,其功能在于收集和提交用户的输入信息。常见的表单控件包括文本框(text)、单选按钮(radio)、复选框(checkbox)、下拉框(select)、按钮(button)、密码框(password)、提交...

    使用DreamweaverMX开发简易留言簿

    3. **服务器端脚本**:为了处理用户提交的信息,可能需要用到服务器端脚本,如PHP、ASP或JSP,它们负责接收表单数据,验证输入,并可能将数据保存到数据库中。 4. **表单处理**:在Dreamweaver MX中,可以使用内置...

Global site tag (gtag.js) - Google Analytics