新增功能的实现

3.学生信息新增的实现

a.编写HTML网页

首先在现有的student_list.html网页中新加一个新增的按钮

并编写该按钮所对应的点击的方法,该方法是跳到新增网页上去

值得注意的是:

此处跳转绑定了一个返回路径,便于返回

b.新建一个增加的网页,网页名就是student_edit.html.

该网页head部分同样,用于导包

该网页是body部分内容则是一个form表单

<body class="easyui-layout">
<div data-options="region:‘center‘,title:‘更新学生信息‘,collapsible:false" style="height:66px">
    <div class="datagrid-toolbar" style="height: 25px;padding: 5px;">
        <a href="#" class="easyui-linkbutton" class="btnBack" onClick="back()" data-options="iconCls:‘icon-back‘">返回</a>
        <a href="#" class="easyui-linkbutton" class="btnSave" onClick="save()" data-options="iconCls:‘icon-save‘">保存</a>
    </div>
    <div>
        <form id="form">
            <table class="TBLForm" cellpadding="5" width="100%">
                <tr>
                    <td width="20%" class="Rightxs">学号</td>
                    <td width="30%"><input class="easyui-textbox" id="sno" name="sno" required/></td>
                    <td width="20%" class="Rightxs">姓名</td>
                    <td width="30%"><input class="easyui-textbox" id="name" name="name" required/></td>
                </tr>
                <tr>
                    <td class="Rightxs">性别</td>
                    <td id="sex">
                        <input type="radio" id="sex1" name="sex" value="1" checked/>
                        <span class="sexOne">男</span>
                        <input type="radio" id="sex2" name="sex" value="2"/>
                        <span class="sexOne">女</span>
                    </td>
                    <td class="Rightxs">生日</td>
                    <td>
                        <input class="easyui-datebox" editable=false type="text" id="birthday"
                               data-options="required:true" style="width:150px;"/>
                    </td>
                </tr>
                <tr>
                    <td width="20%" class="Rightxs">登录名</td>
                    <td width="30%"><input class="easyui-textbox" id="loginName" name="loginName" required/></td>
                    <td width="20%" class="Rightxs">密码</td>
                    <td width="30%"><input class="easyui-textbox" type="password" name="password" id="password"
                                           data-options="required:true"/></td>
                </tr>
                <tr>
                    <td class="Rightxs">院系</td>
                    <td colspan="3">
                        <select id="depid" name="depid" editable="false"
                                data-options="panelHeight:‘auto‘" required
                                class="easyui-combobox" style="width:150px;">
                         </select>
                    </td>
                </tr>
            </table>
        </form>
        </div>
    </div>
</body>

编写Javascript中内容

首先用全局变量接收绑定过来的参数

再编写加载页面后自动执行的方法

此处需要注意的是:

由于在新增表单中院系是一个下拉列表,其下拉列表值为depid,但显示的内容确实其名字。在进入新增页面的时候,就会自动加载该下拉列表的内容。因此,在页面加载完成后就会执行loadDep(“#depid”)这个方法

此时请求地址会递交到子控制器getwaybeans.xml文件,在该文件中会新建一个bean

其class值则会departmentBean类的路径,其name属性则是该类中查询的方法名

此时还需要新建一个实体类department,该实体类与department表进行对应

再写departmentBean中的查询方法

该类也需要继承BaseBean类

最后写该类查询所需要的sql语句,则需要新建一个department.xml文件

以上一系列操作即根据ID查询名字显示在表单的下拉列表中

此处回到新增功能上

用户将需要新增的信息填好后,按保存按钮,则会触发事件

根据URL地址发送一个ajax请求

//此为保存按钮,就是修改或添加数据完毕会启动该方法,从而调用后台的方法
function save(){
    //获取该表单
    var formObj=$("#form");
    var isValid=formObj.form(‘validate‘);
    if(isValid){
        //发送请求的地址
        var url="saveStudentInfo.hebe";
        //定义一个数组
        var appendArr=[];
        //将时间中的值去年月进行处理放到数组中
        appendArr.push({name:"birthday",value:removeNYR($("#birthday").datebox("getValue"))});
        if(id){
            //如果是修改则有ID,将ID放到数组中
            appendArr.push({name:"id",value:id});
        }
        //将数组转化为json格式
        var json=formObj.serializeJson(appendArr);
        //将json格式数据转化为字符串格式
        var jsonStr=json2str(json);
        //调用ajax请求方法并返回一个text结果
        var result=getTextData(url,jsonStr);
        if(result=="error"){
            //返回请求失败的结果时,会有相关的提示框
            $.messager.alert("温馨提示","信息保存失败","error");
        }else{
           //在页面上方跳出一个提示信息
            showMessageTop("操作成功!",160);
            //定时器。1秒后自动跳转到列表页面并刷新
            setTimeout(function(){
                window.location.href="studentlist.html";
                $("#form").datagrid(‘reload‘);
            },
           1000 );
        }
    }
}

当用户不想新增的时候则会按返回按钮,即可触发返回事件

值得注意的是:

该处返回的backUrl是跳转到该页面绑定过来的那个页面参数,则现在点击返回则便于返回原来的页面

c.编写getwaybeans.xml子控制器

根据URL地址找到该子控制器

d.根据该控制器name属性在studentBean中编写新建的方法

/**
 * 更新(修改或添加)
 */
public String saveStudentInfo(String json){
    //后台获取前台表单传过来的数据
    //JSON_UTIL是父类BaseBean中的全局属性,该属性值为调用了JsonUtil.class中将json数据转化为各种类型数据的操作
    //此处调用了将前台获取的json数据转化为一个实体对象的数据
    Student st= (Student) JSON_UTIL.json2Object(json,Student.class);

if(st==null){
        //此处返回是是Constant.java类中的一个静态系统常量,用于标识判断
        return Constant.AJAX_ERROR;
    }
  //给实体类中带用特殊字段的字段转码
    st= (Student)BaseUtils.unCompileObject(st);
    //用get方法获取实体类中的ID,若ID为空则说明该操作为新建
    Long sid=st.getId();
    //获取当前系统时间
    Long nowTime= DateUtil.nowTimeStr();
    //对密码进行加密
    String password =st.getPassword();
    try{
        if(sid!=null){
            if(password!=null){
                MD5Util md5 = MD5Util.getInstance();
                String despassword = md5.encrypt(password);
                st.setPassword(despassword);
                //父类中的全局属性,该属性值为调用了DblClient.Class中的相关方法,此处用的是update的方法
                DBL_CLIENT.update("update.student.infop",st);
            }else{
                DBL_CLIENT.update("update.student.info",st);
            }

}else{
            MD5Util md5 = MD5Util.getInstance();
            String despassword = md5.encrypt(password);
            st.setPassword(despassword);
            //将当前的系统时间通过实体类中的set方法放到实体类中去
            st.setCreatetime(nowTime);
            //父类中的全局属性,该属性值为调用了DblClient.Class中的相关方法,此处用的是insert的方法
            DBL_CLIENT.insert("insert.student.info", st);
        }
    }catch(DblException dbl){
        //此处返回是是Constant.java类中的一个静态系统常量,用于标识判断
        return Constant.AJAX_ERROR;
    }
    //此处返回是是Constant.java类中的一个静态系统常量,用于标识判断
    return Constant.AJAX_SUCCESS;
}

值得注意的是:

该方法包括新增与修改,因此需要对id进行判断,有ID的则会修改,没有ID的则会新建

e.编写student.xml文件

由于新建的需要编写新建的sql语句

以上一系列都是为实现新增学生信息而编写的,总结如下:

编写HTML网页按钮与网页跳转语言——》新建一个网页student_edit.html——》编写getwaybeans.xml文件——》编写的bean类中新建的方法——》编写student.xml文件插入的sql语句

时间: 2024-12-23 17:43:01

新增功能的实现的相关文章

PHP5.2至5.6的新增功能详解

截至目前(2014.2), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护 [注] 的 PHP5.2, 其余的一半用户在使用 PHP5.3 [注].因为 PHP 那"集百家之长"的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣.本文将会介绍自 PHP5.2 起,直至 PHP5.6 中增加的新特征. PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用的功能,匿名函数

Netbackup 7.6新增功能和优势

  一.新增功能 1.1NetBackup Accelerator(适用于 VMware) 此功能使用 Accelerator 技术加快虚拟化备份速度,在完成增量备份期间还提供完全备份映像.借助 VMware 更改数据块跟踪 (CBT) 和 NetBackup Accelerator,仅将发生变化的数据块从客户端传输至介质服务器. ·       备份速度增加高达 35 倍,可以更好地满足服务级别协议要求而不影响恢复 ·       减少了数据传输量,因此缓解了基础架构承受的压力 1.2NetB

ADO.NET 中的新增功能

ADO.NET 中的新增功能: .NET Framework (current version) 以下是 .NET Framework 4.5 中 ADO.NET 的新增功能. SqlClient Data Provider 以下是 .NET Framework 4.5 中用于 SQL Server 的 .NET Framework 数据提供程序的新增功能: ConnectRetryCount 和 ConnectRetryInterval 连接字符串关键字 (ConnectionString)

.NET Framework 1.1、2.0、3.0、3.5、4.0各版本新增功能

一..NET Framework 1.1版本 1.ASP.NET移动控件 2.ADO.NET的改动 添加System.Data.Odbc命名空间 新增System.Data.OracleClient命名空间供Oracle使用 DataReader对象公开HasRows属性,判断是否有返回行 Connection对象具有EnlistDistributedTransaction,可以在分布式事务中启动手动登记. 3.并发执行 .NET Framework 1.1版本支持并行执行. 4..NET Fr

openstack【Kilo】汇总:包括20英文文档、各个组件新增功能及Kilo版部署

OpenStack Kilo版本发布 20英文文档OpenStack Kilo版本文档汇总:各个操作系统安装部署.配置文档.用户指南等文档 Kilo版部署 openstack[Kilo]入门 [准备篇]零:整体介绍 openstack[Kilo]入门 [准备篇]一: Ubuntu14.04远程连接(ssh安装) openstack[Kilo]入门 [准备篇]二:NTP安装 openstack[Kilo]入门 [准备篇]三:mysql(MariaDB)安装[控制节点] openstack[Kilo

hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档

相关内容: hadoop2.5.2汇总:新增功能最新编译 32位.64位安装.源码包.API.eclipse插件下载Hadoop2.5 Eclipse插件制作.连接集群视频.及hadoop-eclipse-plugin-2.5.0插件下载hadoop2.5.1汇总:最新编译 32位.64位安装.源码包.API下载及新特性等 新手指导:hadoop官网介绍及如何下载hadoop(2.4)各个版本与查看hadoop API介绍 从零教你在Linux环境下(ubuntu 12.04)如何编译hadoo

Citrix PVS 7.11新增功能

Provisioning Services  7.11中提供以下新增功能: 1.SQL Server Always On 多子网故障转移 2.PVS 支持 CIS 问题报告 3.AlwaysOn 跟踪 4.对 Windows Server 2016的支持 一.SQL Server Always On 多子网故障转移 在多子网环境中,PVS 现在支持 SQL Server Always On 故障转移.这个功能对于我们来说有什么用呢?其实这个功能的好处就是:对于大型企业环境的部署,我们可以采用这个

cloudstack4.4新增功能前瞻

cloudstack4.4.0新功能前瞻 转载请注明地址:http://blog.csdn.net/zt689/article/details/37698989 1.   cloudstack4.4.0新增功能 cloudstack4.3.0发布已经好几个月,目前cloudstack4.4.0的开发正在忙碌的进行,估计离发布也不会久远.cloudstack4.4.0新增了许多功能.翻译不够准确的地方欢迎拍砖. 1.1   支持对root磁盘卷的存储管理 root磁盘卷的主存储插件的使用. 支持的

在工具栏上新增功能按钮

在工具栏上新增功能按钮,该按钮定义保存在系统结构体SSCRFIELDS中,N为一个整数类型的序号例如当N等于1时,按钮描述保存在字段SSCRFIELDS-functxt_01中,按钮的功能代码将默认赋值为'FC01',保存在字段SSCRFIELDS-UCOMM中,其使用方法如下例所示.注意:本例中共有两个按钮由于按钮属于屏幕元素的一部分,多以必须定义好屏幕再对按钮字段进行赋值. 1 REPORT ztest_sum. 2 TABLES:mara. 3 TABLES sscrfields. "引用