这是我的 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"方法并传递必要的参数呢?
假设你有一个名为empresaId的变量来保存实体的id,这应该可以工作。
$.getJSON( "rest/empresas/" + empresaId, function(data) {
// Whatever is required here
}
好吧,在没有使用该特定框架的情况下,它看起来正在根据路径映射到正确的方法 - 如果路径具有 ID,它将使用 findById
,例如
$.getJSON("rest/empresas/100", function(data) {
// ...
}
(这将找到ID为100的项目......显然替换了您要查找的项目的ID。我们不知道这是从哪里来的,但"rest/empresas/" + id
很可能就是你所需要的。
在我的初始代码中,没有查询连接到方法findById()上的变量"empresa"。
我在存储库类上创建了一个查询并将其分配给变量。问题解决了。
谢谢大家借出的时间。