【问题标题】:Datatables Standalone Editor in Java ServletJava Servlet 中的数据表独立编辑器
【发布时间】:2016-05-30 03:14:35
【问题描述】:

我将 DataTables 独立编辑器用于我的 Web 应用程序中的字段。这个软件的创建者有 PHP 类,但没有 java 类,所以我创建了一个快速的 java servlet 来接受要编辑的传入字段。 javascript如下:(如您所见,一个url有不同的字段)

editor = new $.fn.dataTable.Editor( {
    ajax: "/json/fields/server",
    fields: [ {
            label: "Status:",
            name:  "status",
            type:  'radio',
            options: [
                { label: 'Enabled',  value: 'Enabled' },
                { label: 'Disabled', value: 'Disabled' }
            ]
        }, {
            label: "Server IP address:",
            name:  "server-ip"
        }, {
            label:     "Polling period:",
            name:      "poll-period"
        }, {
            name: "protocol", // `label` since `data-editor-label` is defined for this field
            type: "select",
            options: [
                { label: 'TCP', value: 'TCP' },
                { label: 'UDP', value: 'UDP' }
            ]
        }
    ]
} );

我在我的 java servlet 中使用了类似的东西:

String serverid = request.getParameter("serverid");
String[] status = {"status", request.getParameter("data[keyless][status]")};
String[] server-ip = {"server-ip", request.getParameter("data[keyless][server-ip]")};
String[] protocol = {"protocol", request.getParameter("data[keyless][protocol]")};

    String[][] fields = {status, server-ip, protocol};

    Connection conn = null;
    PreparedStatement pst = null;
    String write = null;
    try {
        conn = ConnectionManager.getConnection();
        for(String[] field : fields){
            if(field[1] != null){
                write = "{\"data\":[{\"" + field[0] + "\":\"" + field[1] + "\"}]}";

                pst = conn.prepareStatement("UPDATE server SET " + field[0] + " = ? WHERE id = ?");
                pst.setString(1, field[1]);
                pst.setString(2, serverid);
                pst.execute();
                pst.close();

                break;
            }
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
        DBUtil.close(conn);
        DBUtil.close(pst);
    }

    response.setContentType("application/json");
    PrintWriter writer = response.getWriter();
    if(write != null)
        writer.write(write);
    writer.close();

我首先使用带有字段名称的字符串数组来防止sql注入攻击,但我不能使用参数,因为字段名称是动态的。

我的问题是,有没有更好的方法来做到这一点?

【问题讨论】:

    标签: java json servlets datatables


    【解决方案1】:

    是的。无需重新发明轮子。只需访问http://jed-datatables.net,您就可以节省大量时间。它包含使用数据表所需的所有示例。

    【讨论】:

    • 谢谢这个网站实际上是一个很好的资源,但不是我要的。该站点有所有数据表的示例,但没有独立编辑器的示例。我在问是否有更好的方法来完成独立编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多