单元格无法更新(服务器错误)

时间:2013-03-05 22:26:33

标签: java javascript jquery servlets

我正在使用Servlet来填充带有mysql数据库数据的jsp页表,以及jquery datatable插件以使表可编辑。

然而,表格编辑不起作用,每次编辑字段并点击“回车”时,我都会收到错误“单元格无法更新(服务器错误)”。我的doPost方法是否正在运行?

这是我的jquery scriplet:

<script type="text/javascript">  
        $(document).ready(function(){
        oTable = $("table#datatables").dataTable({
                "sPaginationType":"full_numbers",
                "aaSorting":[[2, "desc"]],
                "bJQueryUI":true,
                "sDom": '<"top"i><"title">lt<"bottom"pf>'               
                }).makeEditable({
                "sUpdateURL": "/home",
                "aoColumns": [
                 null,  //medical record number
                 {},    //last name; default editing    
                 {},    //first name; default editing
                 {},    //middle name; default editing
                 {},    //date of birth; default editing
                 {      //gender, selection between M and F
                    indicator: 'Saving...',
                    tooltip: 'Click to select gender',
                    loadtext: 'loading...',
                    type: 'select',
                    onblur: 'submit',
                    data: "{'M':'M','F':'F'}"
                 }, 
                 null,  //admission date time
                 null,  //discharge date time
                 null,  //attending physician
                 {}     //room; default editing
                 ]
            });
        });
     </script>

这是我的家庭Servlet的doPost方法

protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
             int id = Integer.parseInt(request.getParameter("id"));
     int columnId = Integer.parseInt(request.getParameter("columnId")); 
     int columnPosition = Integer.parseInt(request.getParameter("columnPosition")); 
     int rowId = Integer.parseInt(request.getParameter("rowId")); 
     String value = request.getParameter("value"); 
     String columnName = request.getParameter("columnName");

     System.out.println(value);         
}

我的servlet的URL映射是“/ home”

2 个答案:

答案 0 :(得分:0)

  

我的doPost方法是否正在运行?

我不确定默认情况下dataTable会发出POST请求。 可能是您需要添加方法类型POST。类似"sServerMethod": "POST""bServerSide": true,

的内容

参考: http://www.datatables.net/release-datatables/examples/server_side/post.html

http://www.datatables.net/release-datatables/examples/data_sources/server_side.html

  

“sUpdateURL”:“/ home”

检查是否已使用映射映射了servlet。

最简单的方法,我建议您将sys out放在doGet()doPost()中。

现在有了像Mozilla Firefox这样的现代浏览器的日子,你可以使用像Firebug这样的工具来检查Http请求。

答案 1 :(得分:0)

我遇到了同样的问题。它通常意味着响应不会在servlet中结束。尽量使用&#34; home&#34;。或者,如果您有虚拟名称(可能是您正在使用筛选器来过滤所有servlet,例如使用&#34; / scheduler /&#34;),请尝试在&#34;之前添加它。家&#34 ;.它看起来像&#34; / scheduler / home&#34;例如。或者尝试使用提交按钮创建表单(action =&#34; / home&#34;)并检查您的&#34; / home&#34;资源可以到达。