有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java剑道网格使用resteasy不显示任何数据

我在一个项目中工作,客户端使用Kendo UI HTML5,服务器端使用Java WildFly 8.2.0。最终的和容易的

我的服务器工作正常,但我将把代码放在这里:

import ec.com.decision.consultas.dao.AccesoesFacade;
import javax.ejb.EJB;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("/accesos")
public class AccesoServicio {

    @EJB
    private AccesoesFacade accesoFacade;

    @GET
    @Path("todos")
    @Produces(MediaType.APPLICATION_JSON+ ";charset=utf-8")
    public Response obtenerTodos() {
        try {

            return Response.ok(accesoFacade.findAll()).build();
        } catch (Exception e) {
            return null;
        }
    }
}

我也有CORSFilter:

@Provider
public class CORSFilter implements ContainerResponseFilter {

   @Override
   public void filter(final ContainerRequestContext requestContext,
                      final ContainerResponseContext cres) throws IOException {
      cres.getHeaders().add("Access-Control-Allow-Origin", "*");
      cres.getHeaders().add("Access-Control-Allow-Headers", "origin, content-type, accept, authorization");
      cres.getHeaders().add("Access-Control-Allow-Credentials", "true");
      cres.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
      cres.getHeaders().add("Access-Control-Max-Age", "1209600");
   }

}

结果是:

    [{
    "accesoesID": 1,
    "nombreAcceso": "Seguridad",
    "controladorAcceso": "S/N",
    "accionAcceso": "Index",
    "idacceso": null,
    "parentAcceso": "_parent",
    "fecCreaAcceso": 1323804595183,
    "estadoAcceso": true,
    "visibleAcceso": true
}, {
    "accesoesID": 2,
    "nombreAcceso": "Accesos",
    "controladorAcceso": "Acceso",
    "accionAcceso": "Index",
    "idacceso": 1,
    "parentAcceso": "_parent",
    "fecCreaAcceso": 1323804595183,
    "estadoAcceso": true,
    "visibleAcceso": true
}, {
    "accesoesID": 3,
    "nombreAcceso": "Roles",
    "controladorAcceso": "Rol",
    "accionAcceso": "Index",
    "idacceso": 1,
    "parentAcceso": "_parent",
    "fecCreaAcceso": 1323804595183,
    "estadoAcceso": true,
    "visibleAcceso": true
}]

这是我的客户端代码:

<!DOCTYPE html>
<html>
<head lang="es">

    <meta charset="UTF-8">
    <title>Accesos</title>
    <link rel="stylesheet" href="estilos/kendo.common.min.css" />
    <link rel="stylesheet" href="estilos/kendo.material.min.css" />

    <script src="scripts/jquery.min.js"></script>
    <script src="scripts/kendo.all.min.js"></script>
</head>
<body>
    <div id="ejemplo">
        <div id="tbAccesos"></div>

        <script>

            $(document).ready(function() { 

               $("#tbAccesos").kendoGrid({
                    dataSource: {

                        transport: {

                            read: {
                                url: function (data) {
                                    return "http://localhost:8080/Consultas-1.0/rest/accesos/todos";
                                },
                                contentType: "application/json; charset=utf-8",
                                type: 'GET',
                                dataType: "jsonp"
                            }
                        },
                        schema: {
                            model: {
                                id:"accesoesID",
                                fields: {
                                    accesoesID: { type: "number" },
                                    nombreAcceso: { type: "string" },
                                    controladorAcceso: { type: "string" },
                                    accionAcceso: { type: "string" },
                                    parentAcceso: { type: "string" },
                                    fecCreaAcceso: { type: "date" },
                                    estadoAcceso: { type: "boolean" },
                                    visibleAcceso: { type: "boolean" }
                                }
                            }
                        },
                        pageSize: 20,
                        serverPaging: true,
                        serverFiltering: true,
                        serverSorting: true
                    },
                    height: 550,
                    groupable: true,
                    filterable: true,
                    sortable: true,
                    pageable: true,
                    columns: [{
                        field:"accesoesID",
                        filterable: false,
                        hidden: true
                    },
                        {
                            field: "nombreAcceso",
                            title: "Nombre"
                        }, {
                            field: "controladorAcceso",
                            title: "Controlador"
                        }, {
                            field: "accionAcceso",
                            title: "Accion"
                        }, {
                            field: "parentAcceso",
                            title: "Acceso padre"
                        }, {
                            field: "fecCreaAcceso",
                            title: "Fecha de creación",
                            format: "{0:MM/dd/yyyy}"
                        }, {
                            field: "estadoAcceso",
                            title: "Estado"
                        }, {
                            field: "visibleAcceso",
                            title: "Visible"
                        }
                    ]
                });
            });
        </script>


    </div>
</body>
</html>

当我运行客户机代码时,只显示剑道网格的标题,而没有数据。有什么想法吗?还是我做错了什么


共 (1) 个答案

  1. # 1 楼答案

    因为您使用的是服务器分页,所以需要在模式中定义来自服务的总计和数据映射。 这是服务器分页设置为true时所需的结构。 { 总数:30, 数据:[数据数组]

    }