Java 中 DataTable 的服务器端处理

Server-side processing of DataTables in Java

提问人:guido 提问时间:1/21/2020 最后编辑:guido 更新时间:1/21/2020 访问量:578

问:

我有一个带有 Rest api 和 Oracle 数据库的 spring boot 应用程序,并 react front。它运行良好,但现在我想尝试使用服务器端处理的数据表。我有相当多的实体和控制器。我想澄清一些事情。我曾经学习过的每个例子都使用了 jpa。可以使用JDBC吗?(我已经设置了JDBC,我不想在jpa中重做所有内容)。当我尝试将示例更改为 jdbc 时,它们通常以 null 指针异常响应。另外,控制器怎么样?我看到了同时使用 get 和 post 的示例。 通常我使用 get 来获取数据。但是从我尝试复制和用于数据库的内容来看,post 似乎被识别,而 Get 抛出 null。我是否需要在正文或位置指定抽奖和其他参数?另外,是否只有一个控制器可以以某种方式准备其他人的响应,或者我应该更改每个控制器?对不起,这是我第一次在服务器端使用 datatables。 这就是我用的,够了吗?

componentDidMount() {
        var index = null;
        var table = $(this.refs.main).DataTable({
            dom: '<"data-table-wrapper"t>',
            data: this.props.data,
            "processing": true,
            "serverSide": true,
            "pageLength": 1,
            "ajax": $.fn.dataTable.pipeline( {
                "url": "/api/calculations",
                "type": "POS"
                "data": function (data) {
                    return data = JSON.stringify(data);
             }}),
             'pagingType':   'simple',
             'order':        [[0,'asc']],
             'pageLength': 100,
             "columns": this.props.columns
        });
        $(this.refs.main).on('click', 'tr', () => {
            var index = table.row(this).index();
            var item = table.row(this).data();
            this.updateIndex(index);
            console.log(index);
            console.log(item);
        });
    }

因此,我的前端在身份验证和授权后,转到我执行的那个组件(api 中有分页,我现在决定尝试没有它)

  fetchItems = async (page, elements) => {
    try {
      const response = await CalculationsApiService.fetchAll()
      this.setState({ items: response.data })
    } catch (e) {
      this.setState({
        e,
        isError: true,
        items: null,
      })
    }
  }

后来在渲染中,我用我的通用表调用我的子组件,并将列和项作为道具传递(本文中代码的第一部分)也许错误是我首先在父级中调用数据,然后在子级中调用ajax?一般的控制器呢?我可以以某种方式使用普通的休息控制器并从我的反应中发送一些特别的东西吗?当上面的教程没有修改时,我有一个带有 responseentity 的普通 rest api

java spring-boot datatables 服务器端

评论

0赞 OneCricketeer 1/21/2020
你在用Spring-Data吗?你能显示从前端发送的 Java 代码和有效负载而不是请求代码吗?
0赞 guido 1/21/2020
现在将编辑!谢谢
0赞 guido 1/21/2020
我只是不明白,我的正常 rest api 会起作用吗?还是需要对每个控制器进行大量修改?有些教程使用一组特殊的类 lile PaginationCriteria,有些似乎没有。我只是不明白我应该使用什么
0赞 OneCricketeer 1/22/2020
忘记所有高级术语。您正在将 JSON 发送到位于服务器端的 API 终结点。您真正发送的数据最终会到达另一端。无论你选择在那里用它做什么,都取决于你的用例,但它将是 JSON,而不是 DataTable

答: 暂无答案