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静态改变数据就说到这儿了。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

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