使用Jersey

时间:2017-12-28 10:25:27

标签: java angularjs jersey

我正在研究泽西岛应用程序。 当客户端向我的服务器询问某些内容时(通过按钮/单击),我没有问题。但现在我想添加一个按钮" loading"有些sql请求正在执行。它通常是客户端询问的东西,然后服务器发送一些东西,但这次我需要服务器发送一些东西,是否可以这样做?

我有一个由id,名称定义的作业列表......我添加了@Transient加载。我需要在load = true时显示加载GIF,在load = false时显示任何内容。

我的代码摘录:

@Entity
@Table(name = "T_JOB")
@SequenceGenerator(name = "seqJob", sequenceName = "SEQ_JOB", initialValue = 1,
        allocationSize = 1)
@Getter
@Setter
public class Job{

    @Id
    @GeneratedValue(generator = "seqJob", strategy = GenerationType.SEQUENCE)
    @Column(name = "T_JOB_ID")
    private int id;

    @Column(name = "name")
    private String name;

    @Transient
    private boolean load;

}

这是我的功能改变负载值:

public void execute(){
   job.setLoad(true);
   // some functions taking few seconds/minuts...
   job.setLoad(false);
}

如何动态地与客户的工作价值沟通?

我在泽西岛尝试了类似的东西:

@POST
@Path("/getLoad")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public boolean getLoad() {
    return load;
}

服务:

srv.getLoad = function(){
    return $http.post(baseService + 'getLoad');
}
 return srv;

然后在JS:

Services.getLoad().success(function(data, status, headers, config){
                $scope.load = data;

            });

问题:它可以工作,但我需要更新/点击才能获得负载值。我知道我可以使用setInterval,但这样做会很糟糕!有人有想法吗?非常感谢你!

0 个答案:

没有答案