0

私はサーブレットを使用してjspページテーブルにmysqlデータベースデータを入力し、jqueryデータテーブルプラグインを使用してテーブルを編集可能にしています。

ただし、テーブルの編集は機能せず、フィールドを編集して「Enter」を押すたびに「セルを更新できません (サーバー エラー)」というエラーが表示されます。私の doPost メソッドは実行されていますか?

これが私のjqueryスクリプトレットです:

<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>

そして、これが私のホームサーブレットの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);         
}

私のサーブレットの URL マッピングは「/home」です

4

2 に答える 2

0

私は同じ問題を抱えていました。これは通常、応答がサーブレットに届かないことを意味します。「家」だけを使ってみてください。または、仮想名がある場合 (「/scheduler/」などで始まるすべてのサーブレットをフィルタリングするフィルターを使用している可能性があります)、「home」の前に追加してみてください。たとえば、「/scheduler/home」のようになります。または、送信ボタン (action="/home") を使用してフォームを作成し、"/home" リソースにアクセスできるかどうかを確認してください。

于 2015-09-25T16:19:35.390 に答える
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"

サーブレットをマッピングでマッピングしたことを確認してください。

sys out最も簡単な方法として、 との両方doGet()を入れることをお勧めしますdoPost()

現在、Mozilla Firefox などの最新のブラウザーでは、Firebug などのツールを使用して HTTP 要求を調べることができます。

于 2013-03-06T07:13:40.057 に答える