spring后端让页面alert_Spring MVC:通过打开和关闭网页上的开关来触发和终止后端方法...

所以在前端主页中,有一个可以打开和关闭的开关。交换机的状态码可以使用Ajax发送到后端。

现在,当开关打开时,我想让后端方法继续运行,我定义如下:

public static void foo {

Thread thread = new Thread(new Runnable() {

@Override

public void run() {

while(true) {

try {

Thread.sleep(8000);

ArticleDAO.addNewArticles();

} catch (Exception e) {

e.printStackTrace();

}

}

}

});

thread.start();

}而当切换关闭时,我想要方法或线程被终止。

JSP页面中的Ajax代码如下所示:

$("#switcher").on("switchChange.bootstrapSwitch", function(e, state) {

if (state == true) {

$(function() {

$.ajax({

type: "POST",

url: "http://localhost:8080/wx/admin/toggle_state.html",

data: {

stateCode: 1

},

success: function(data) {

alert("Switched to auto mode");

},

error: function() {

alert("Something went wrong!!");

}

});

});

} else if (state == false) {

$(function() {

$.ajax({

type: "POST",

url: "http://localhost:8080/wx/admin/toggle_state.html",

data: {

stateCode: 0

},

success: function(data) {

alert("Switched to manual mode");

},

error: function() {

alert("Something went wrong!!");

}

});

});

} else {

alert("Something went wrong!!");

}

});这里是弹簧控制器:

@RequestMapping(value = "admin/toggle_state.html", method = RequestMethod.POST)

@ResponseBody

public String toggleState(@RequestParam Integer stateCode) throws Exception {

if (stateCode == 1) {

/*

EXECUTE THE FOO METHOD RIGHT HERE

*/

System.out.println("Switched to auto mode.");

} else if (stateCode == 0) {

// TERMINATE THE METHOD / THREAD HERE

}

return "";

}那么实现这一目标的推荐方法是什么?它实际上并不难,但我不知道如何开始和终止我的情况下的线程。我能想到的一种方法是将交换机的状态代码存储到数据库,并使方法在线程中每次运行该方法时检查数据库。但这似乎不是一个好的解决方案。有任何想法吗?提前致谢!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值