`
yzhming
  • 浏览: 33191 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSP与JavaScript的综合应用

 
阅读更多
(1)在一个WEB邮件系统中,当用户打开邮箱的收件夹时,其中的所有邮件标题将在一个网页中列出,
用户可以选中某些邮件,然后对其执行删除、移动等操作。要标识邮件的选中状态,通常都是在每个邮件旁边放置一个复选框,用户选中某个复选框,即表示用户要选中它旁边的邮件。另外,为了方便用户通过一次操作就选中所有的邮件,网页中通常都要放置一个全选复选框,当选中这个全选复选框时,所有的邮件复选框也随之被自动选中,当去掉全选复选框的选中状态时,所有的邮件复选框的选中状态也随之被去掉。要想通过单击图8.5中的“全选”复选框来一次操作就选中所有的邮件,显然需要用一段JavaScript代码来实现。由于邮箱中的邮件数目是不确定的,因此图8.5中的代表每封邮件的复选框的个数也是不确定的,它们通常是由ASP、JSP等服务器端程序动态产生的,在这种情况下,如果为每个复选框都设置一个不同的名称,每个复选框在程序中的引用名称也就各不一样,这样,要通过JavaScript将每个复选框设置为选中状态时,不可能用一段循环代码来统一处理所有的复选框,而要为每个复选框的都编写单独的处理程序代码。较好的做法是为每个复选框都设置一个完全相同的名称,但它们各自的设置值不同,分别代表每封邮件的编号,这样,在JavaScript中就可以用一个数组来访问这些复选框,从而可以使用一段循环语句来对每个复选框进行处理。另外,将每个复选框的名称都设置成一样,也有利于服务器端程序通过简单的代码就可获知客户端所选中的多封邮件。例程8-6是一个模拟图8.5中的“全选”复选框功能的HTML文件,其中的JavaScript代码细节请参看笔者的《JavaScript网页开发》一书。
例程8-6 maillist.html


<script language="javascript">
    function checkAll()
    {
        var count = document.mailForm.mail.length;
        for(var i=0; i<count; i++)
        {
            document.mailForm.mail[i].checked =
                document.mailForm.ifAll.checked;   
        }
    }
</script>  
<form name="mailForm">
    <input type="checkbox" name="mail" value="1">邮件1<br>
    <input type="checkbox" name="mail" value="2">邮件2<br>
    <input type="checkbox" name="mail" value="3">邮件3<br>
    <input type="checkbox" name="ifAll" onclick="checkAll()">全选
</form>


用浏览器直接打开例程8-6所示的maillist.html文件,单击“全选”复选框,可以看到所有其他的复选框也随之被选中。
(2)在实际应用中,某个邮箱的收件夹中可能有多封邮件,也可能只有一封邮件,甚至是一封邮件都没有,而上面的maillist.html文件中的JavaScript代码不能正确处理只有一封邮件和一封邮件都没有的情况。修改maillist.html文件,将其中的与邮件2和邮件3相关的语句注释掉,如下所示:
    …
    <input type="checkbox" name="mail" value="1">邮件1<br>
    <!--<input type="checkbox" name="mail" value="2">邮件2<br>
    <input type="checkbox" name="mail" value="3">邮件3<br>-->
    <input type="checkbox" name="ifAll" onclick="checkAll()">全选
    …
刷新浏览器对maillist.html文件的访问,单击“全选”复选框,可以看到代表邮件1的复选框并没有随之被选中。修改maillist.html文件,将其中的与邮件1、邮件2和邮件3相关的语句全部注释掉,刷新浏览器对maillist.html文件的访问,单击“全选”复选框,浏览器底部的状态栏中将出现“网页上有错误”的提示信息。显然,上面编写的checkAll函数只考虑到了收件夹中有多封邮件的情况,而没有考虑到只有一封邮件和一封邮件都没有的情况,在实际应用中必须对这些细微的情况进行考虑。如果收件夹中连一封邮件都没有,那么将不会出现名称为“mail”的复选框,对这种情况可以用下面的任何一条语句进行判断:
l         if(document.mailForm.mail == null)
l         if(!document.mailForm.mail)
l         if(typeof(document.mailForm.mail) == "undefined")
如果收件夹中只有一封邮件,那么将只会出现一个名称为“mail”的复选框,这时用在JavaScript代码中的document.mailForm.mail表达式将不是一个数组,即document.mailForm.mail对象中不会length属性,这可以在排除连一封邮件都没有的程序代码的基础上,使用下面的任何一条语句进行判断:
l         if(document.mailForm.mail.length == null)
l         if(!document.mailForm.mail.length)
l         if(typeof(document.mailForm.mail.length) == "undefined")
经过上面的分析,例程8-6中的checkAll函数可以改写成如下形式:
<script language="javascript">
    function checkAll()
    {
        //如果邮箱中存在邮件
        if(document.mailForm.mail != null)
        {
            //如果邮箱中有多封邮件
            if(document.mailForm.mail.length != null)
            {  
                var count = document.mailForm.mail.length;
                for(var i=0; i<count; i++)
                {
                    document.mailForm.mail[i].checked =
                        document.mailForm.ifAll.checked;   
                }  
            }
            else    //如果邮箱中只有一封邮件
            {
                document.mailForm.mail.checked =
                    document.mailForm.ifAll.checked;
            }
        }
    }
</script>
用上面的JavaScript代码分别测试maillist.html文件中连一封邮件都没有、只有一封邮件和有多封邮件的情况,可以看到每次单击“全选”复选框都能得到理想的结果。
分享到:
评论

相关推荐

    java web实验报告;开发环境及web基础, JSP、Servlet及JDBC、扩展JavaScript框架、Web应用综合设计

    实验1:Java Web开发环境及Web编程基础;实验2 JSP、Servlet及JDBC应用开发;实验3 扩展JavaScript框架应用;实验4 Web应用综合设计; 天津理工大学

    利用JAVA,CSS,JSP,MySQL等写一个登录管理系统

    ·要求:综合运用JAVA、HTML、CSS、JavaScript、JSP等知识实现一个简单的登录管理系统,需要具备的基本功能和页面包括:· 1)系统登录页面(至少包含用户名和密码) ·2)登录后用户主菜单页面(支撑至少2个不同用户登录) ...

    java web实验报告;开发环境及web基础, JSP、Servlet及JDBC、扩展JavaScript

    实验1:Java Web开发环境及Web编程基础;实验2 JSP、Servlet及JDBC应用开发;实验3 扩展JavaScript框架应用;实验4 Web应用综合设计; 天津理工大学

    JSP开发技术大全 JSP

    mail组件、程序日志组件、JavaScript脚本语言、CSS样式、XML入门技术、在JSP中应用Ajax技术、在JSP中应用DOM解析XML、在JSP中应用JDOM解析XML、在JSP中应用SAX解析XML、EL表达式、JSTL标签库、自定义标签、Hibernate...

    JSP开发技术大全 源码

    mail组件、程序日志组件、JavaScript脚本语言、CSS样式、XML入门技术、在JSP中应用Ajax技术、在JSP中应用DOM解析XML、在JSP中应用JDOM解析XML、在JSP中应用SAX解析XML、EL表达式、JSTL标签库、自定义标签、Hibernate...

    jsp网络编程从基础到实践

    实例4 简单数据类型综合应用实例 实例5 包装类综合应用实例 实例6 数组应用实例 实例7 字符截取程序示例 实例8 查找字符串程序示例 实例9 StringBuffer综合应用程序示例 实例10 日期数据应用示例 实例11 ...

    JSP网络编程从基础到实践的实例代码

    实例4 简单数据类型综合应用实例 实例5 包装类综合应用实例 实例6 数组应用实例 实例7 字符截取程序示例 实例8 查找字符串程序示例 实例9 StringBuffer综合应用程序示例 实例10 日期数据应用示例 实例11 ...

    jsp 开发技术大全

    mail组件、程序日志组件、JavaScript脚本语言、CSS样式、XML入门技术、在JSP中应用Ajax技术、在JSP中应用DOM解析XML、在JSP中应用JDOM解析XML、在JSP中应用SAX解析XML、EL表达式、JSTL标签库、自定义标签、Hibernate...

    JavaWEB开发-JSP ppt

    建立对JSP的直观认识 JSP的运行原理 分析JSP所生成的Servlet代码 JSP隐式对象 注册与配置jsp页面的访问路径 JSP与JavaScript的综合应用 JSP与Servlet的应用比较

    JSP网络编程从基础到实践

    《JSP网络编程从基础到实践》 实例1 第一个JSP页面 Web开发基础 实例2 HTML与JavaScript交互示例 JSP语法 实例3 JSP程序的基本结构 实例4 简单数据类型综合应用实例 实例5 包装类综合应用...

    JSP动态网站开发基础教程与实验指导(从基础到应用)光盘

    《JSP动态网站开发基础教程与实验指导》最后提供了三个综合开发案例。《JSP动态网站开发基础教程与实验指导》附有配套光盘,提供了书中实例的源代码和视频教学文件。 《JSP动态网站开发基础教程与实验指导》可以作为...

    JavaScript网页特效范例宝典(下)

    本书以网站开发者在开发中遇到的实际问题和应该掌握的...JavaScript与ASP.NET结合、JavaScript与PHP结合、综合应用等。全书共提供了401个实例,每个实例都突出实用性,其中大部分是网站开发者梦寐以求的问题解决方案。

    课程设计:基于java8+jsp+mysql+tomcat+javascript实现的在线考试系统【源码+数据库】.zip

    本系统设计综合应用所学知识开发一个基于MVC模式的考试系统 技术栈 java 8 + jsp + mysql + tomcat + javascript + css 相关工具组件 项目开发语言:java 8; Excel工具包:apache-poi 4.1.0; JSP标准标签库:jstl...

    JSP动态网页制作基础培训教程源代码.rar

    JSP下载文件说明包括两部分内容,一部分是JSP基础知识;另一部分是综合实例。读者可根据相应的使用说明直接使用这些源代码。 一、基础知识部分 此部分是指文件夹名为第1~9章中的内容(如表1),这些是书中介绍JSP...

    JSP网络编程从基础到实践 实例代码

    实例4 简单数据类型综合应用实例 实例5 包装类综合应用实例 实例6 数组应用实例 实例7 字符截取程序示例 实例8 查找字符串程序示例 实例9 StringBuffer综合应用程序示例 实例10 日期数据应用示例 实例11 ...

    教学、学习必备:jsp教案

    第5章 JSP与JAVABEAN 126 5.1 编写和使用JAVABEAN 126 5.1.1 编写bean 126 5.1.2 使用 bean 128 5.2 获取和修改BEAN的属性 131 5.2.1动作标签getProperty 131 5.2.2 动作标记setProperty 133 5.3 BEAN的辅助类 139 ...

    jsp网上选课系统(jsp+servlet+mysql)

    学生综合素质管理系统作为高校教务管理工作的一部分,即方便了学生选课和查看分数、教师的教学管理,更加方便了学校的教务管理,本系统主要用的的技术包括:MVC三层架构开发模式,即JSP+JavaBean+servlet三层结构,...

    JSP动态网站技术入门与提高

    本书在简单介绍Web技术、HTML语言、Javascript脚本语言及Java程序设计后,对JSP(Java Server Page)技术进行了系统的讲述,包括JSP运行开发环境、基本语法、实战技巧、JSP和XML、JSP数据库编程技术等,最后给出了几个...

    [JavaScript网页特效范例宝典].明日科技.扫描版2

    JavaScript与ASP.NET结合、JavaScript与PHP结合、综合应用等。全书共提供了401个实例,每个实例都突出实用性,其中大部分是网站开发者梦寐以求的问题解决方案。 本书附有配套光盘。光盘提供了书中所有实例的全部源...

    jsp通讯录信息管理系统 | 毕业设计

    (3)利用所学知识,开发小型应用系统,掌握运用Web应用技术编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。 (4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 ...

Global site tag (gtag.js) - Google Analytics