如何通过“getJSON”访问RESTful服务的“findById”方法?

时间:2015-01-26 17:22:39

标签: java javascript jquery ajax json

这是我的RESTful服务类的以下代码:

@RequestScoped
@Path("/empresas")
public class EmpresaEndpoint {

    @Inject
    private EmpresaRB empresaRB;

    @GET
    @Path("/{id:[0-9][0-9]*}")
    @Produces("application/json")
    public Response findById(@PathParam("id") final Long id) {
        //TODO: retrieve the empresas
        Empresa empresas = null;
        if (empresas == null) {
            return Response.status(Status.NOT_FOUND).build();
        }
        return Response.ok(empresas).build();
    }

    @GET
    @Produces("application/json")
    public List<Empresa> listAll(
            @QueryParam("start") final Integer startPosition,
            @QueryParam("max") final Integer maxResult) {
        //TODO: retrieve the empresa
        return empresaRB.getEmpresas();
    }

}

如果我想通过jQuery访问存储在“Empresa”上的所有数据,我会这样做:

$.getJSON( "rest/empresas", function( data ) {
  //whatever is needed.
}

上面的代码将访问“listAll”方法。那么如何访问“findById”方法并传递必要的参数?

3 个答案:

答案 0 :(得分:1)

假设你有一个名为empresaId的变量来保存实体的id,这应该可行。

$.getJSON( "rest/empresas/" + empresaId, function(data) { 
  // Whatever is required here    
}

答案 1 :(得分:0)

没有使用该特定框架,它看起来像是基于路径映射到正确的方法 - 如果路径有ID,它将使用findById,例如

$.getJSON("rest/empresas/100", function(data) {
  // ...
}

(这会找到ID为100的项目......显然会替换您要查找的项目的ID。我们不知道它来自哪里,但"rest/empresas/" + id可能就是您所需要的。 )

答案 2 :(得分:0)

在我的初始代码中,没有查询连接到变量“empresa”,方法是findById()。

我在存储库类上创建了一个查询并将其分配给变量。解决了问题。

感谢大家放弃的时间。