java数据交互(三)

上篇说了说jsp简单调用action的方法,再说说jsp通过ajax进行网络请求静态更新页面数据的方法。

1.获取表中所有数据填充在表格中
action中获取所有数据的代码:

//    查询全部数据
    public void findListData(){
        List<TestPerson> list = testService.getAllPersonlist();
        super.writeJson(list);
    }

//删除数据
    public void  deletePerson(){
        String id = request.getParameter("id");
        testService.delete(id);
    }

//    编辑数据
    public void  updatePerson(){
        TestPerson testPersoned = testService.get( request.getParameter("id"));
        testPersoned.setName(request.getParameter("name"));
        testPersoned.setAge(Integer.parseInt(request.getParameter("age")));
        testPersoned.setCompany(request.getParameter("company"));
        testPersoned.setSalary(request.getParameter("salary"));
        testPersoned.setAddress(request.getParameter("address"));
        testPersoned.setJob(request.getParameter("job"));
        testPersoned.setAddTime(getCurrentTime());
        Json json = new Json();
        try {
            testService.edit(testPersoned);
            json.setSuccess(true);
            json.setMsg("编辑成功!");
        }catch (Exception e)
        {
            json.setMsg("编辑失败!");
        }
        super.writeJson(json);
    }

jsp页面ajax请求数据的代码:(注意:用esyui创建的table不需要进行ajax网络请求,只有调用方法就可以直接将数据添加到table中)

$("#tbd").html(str); 其中 #tbd为tbody的id  str为要插入的str
function addlistData() {
    $.ajax({
        type : "post",
        url : '/personAction!findListData.do',
        dataType : "json",//设置需要返回的数据类型
        success : function(data) {
//data为请求的数据
//将数据插入table,将代码插入到table的<tbody>标签
            var str = "";
            for (var i in data) {
                str +=
                    "<tr>" +
                    "<td>" + data[i].name + "</td>" +
                    "<td>" + data[i].age + "</td>" +
                    "<td>" + data[i].address + "</td>" +
                    "<td>" + data[i].company + "</td>" +
                    "<td>" + data[i].job + "</td>" +
                    "<td>" + data[i].salary + "</td>" +
                    "<td>" + data[i].addTime + "</td>" +
                    "</tr>";
            }
//下面这句代码是插入普通table的数据,而非使用easyUI创建的table
            $("#tbd").html(str);
        },
        error : function(data) {
            alert("请求错误,请检查!");
        }
    });
}

html代码创建table:

<table id="ddt" title="我的用户"  style="width: 630px;height:400px">
    <thead>
    <tr>
        <th field="name" width="90" align="center">姓名</th>
        <th field="age" width="90" align="center">年龄</th>
        <th field="address" width="90" align="center">地址</th>
        <th field="company" width="90" align="center">公司</th>
        <th field="job" width="90" align="center">职业</th>
        <th field="salary" width="90" align="center">工资</th>
        <th field="addTime" width="90" align="center">添加时间</th>
    </tr>
    </thead>
    <tbody id="tbd">
    </tbody>
</table>

用easyUI创建table并赋值:

<table id="dg" title="我的用户" class="easyui-datagrid" style="width: 800px;height:600px" url="/personAction!findListData.do" toolbar="#toolbar"
       rownumbers="true" fitColumns="true" singleSelect="true"></table>
<div id="toolbar">
</div>

//设置表头和toolbar
    $(function() {

//            设置表头
            $('#dg').datagrid({
                pagination : true,
                pagePosition : 'bottom',
                pageSize : 10,
                pageList : [ 10, 20, 30, 40, 50 ],
                fit : false,
                fitColumns : false,//自适应列宽
                nowrap : true,
                border : true,//表格外边框
                rownumbers : true,//行号
                singleSelect : true,//只允许选择一行
                sortName : 'sortId',
                sortOrder : 'desc',
                checkOnSelect : true,
                selectOnCheck : true,
                    columns:[[
                        {
                            field:"name",
                            width:"90",
                            title:"姓名",
                            align:"center",
                            hidden:false
                        },
                        {
                            field:"age",
                            width:"90",
                            title:"年龄",
                            align:"center"
                        },
                        {
                            field:"address",
                            width:"90",
                            title:"地址",
                            align:"center"
                        },
                        {
                            field:"company",
                            width:"90",
                            title:"公司",
                            align:"center"
                        },
                        {
                            field:"job",
                            width:"90",
                            title:"职业",
                            align:"center"
                        },
                        {
                            field:"salary",
                            width:"90",
                            title:"工资",
                            align:"center"
                        },
                        {
                            field:"addTime",
                            width:"160",
                            title:"添加时间",
                            align:"center"
                        },
                    ]],
                toolbar : [ {
                    text : '增加',
                    iconCls : 'icon-add',
                    handler : function() {
                        newUser();
                    }
                }, '-', {
                    text : '编辑',
                    iconCls : 'icon-edit',
                    handler : function() {
                        editUserView();
                    }
                }, '-', {
                    text : '查询',
                    iconCls : 'icon-search',
                    handler : function() {
                        searchUser();
                    }
                }, '-' , {
                    text : '删除',
                    iconCls : 'icon-remove',
                    handler : function(){
                        deleteUser();
                    }
                } ],
//                onDblClickRow : function(rowIndex, rowData) {
//                    edit();
//                }
            });
        })

标签中class引用了easyUI的样式,url是查询所有数据的方法。toolbar是给table添加一个toolbar.
创建的table为


用户表.png

jsp中更新数据

//        弹出编辑视图
        function editUserView() {
            var row = $('#dg').datagrid('getSelected');
            if (row){
                $.messager.confirm('提示','你确定要编辑这个用户吗?',function(r){
                    if (r){
                        $("#dlg").dialog('open').dialog('setTitle','用户信息');//弹出弹窗  dialog('open')
//根据input的name给输入框设置数据
                        $("#name").val(row.name);
                        $("#age").val(row.age);
                        $("#address").val(row.address);
                        $("#company").val(row.company);
                        $("#job").val(row.job);
                        $("#salary").val(row.salary);
                        $("#updateId").val(row.id);
                    }
                });
            }else
            {
                alert("请选择要编辑的用户");
            }
        }

//        编辑数据
 function editUser() {
            $.ajax({
                type : "post",
                url : '/personAction!updatePerson.do',
                data:{
                    id:$("#updateId").val(),
                    name:$("#name").val(),
                    age:$("#age").val(),
                    address:$("#address").val(),
                    company:$("#company").val(),
                    job:$("#job").val(),
                    salary:$("#salary").val()
                },
                dataType : "json",//设置需要返回的数据类型
                success : function(data) {
                    $('#dg').datagrid('load');
                    $('#dg').datagrid('unselectAll');
                    $("#dlg").dialog('close').dialog();
                    parent.dj.messagerShow({
                        title : '提示',
                        msg : '编辑用户成功'
                    });
                },
                error : function(data) {
                    parent.dj.messagerAlert('提示', '编辑用户失败', 'error');
                }
            });
        }
确定编辑.png
编辑框.png
编辑后用户表.png

data为jsp页面调用action方法是传递的参数,参数少的时候可以逐一列出传递,参数多的时候可以直接使用serialize将属性序列化传递。fm为input所在form表单的ID。

 data: $("#fm").serialize()

在action中通过 request.getParameter("id");来获取jsp传递的参数。
注意:调用方法操作成功,要对页面进行刷新重新加载数据,不然页面数据不会进行刷新。

   $('#dg').datagrid('load') //对table进行数据加载,刷新页面

jsp静态改变数据就说到这儿了。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,608评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,809评论 0 11
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,585评论 1 114
  • 早晨 要忘记很多人和事 金光随石森林的沟渠流淌 各色各样的甲虫来自远方 不过是从家门流浪到路上 一张善言的嘴失去机...
    风萧然阅读 224评论 0 0
  • ------四季歌谣----- 徐 宏 有些话无法用语言去说 有些事难以用行动来做 我们常常用忍耐支...
    sunxuhong阅读 373评论 0 1