我正在进行WebApplication项目来解决rubick cube的speedcubers。我需要在jsp视图中显示实时秒表。第一个想法是在JS中实现秒表,然后将值发送到控制器,我在获取js参数时遇到了问题(秒表完成时间),到java控制器。我的问题是,有没有可能在java中实现秒表,在jsp按钮上工作,或者知道如何从jsp保存控制器中值。
//编辑
制作隐藏窗体,并设置窗体的完成时间值。
点击提交按钮后,它将值发送到数据库,但是是空的。不知道为什么。
我的代码,javascript秒表:
<script>
let [milliseconds,second,minute,] = [0,0,0];
let timerRef = document.querySelector('.mainTime');
let int = null;
document.getElementById('start').addEventListener('click', function(event){
if(int!==null){
clearInterval(int);
}
int = setInterval(mainTime, 10);
});
document.getElementById('stop').addEventListener('click', function (event){
clearInterval(int);
let stringDoZapisuWBazie = document.querySelector('div.mainTime').innerHTML;
console.log(stringDoZapisuWBazie);
document.getElementById('timeValue').value=stringDoZapisuWBazie;
});
document.getElementById('reset').addEventListener('click', function (event){
clearInterval(int);
[milliseconds,seconds,minutes,hours] = [0,0,0];
timerRef.innerHTML = '00 : 00 : 00';
});
function mainTime(){
milliseconds+=10;
if(milliseconds == 1000){
milliseconds = 0;
second++;
if(second == 60){
second = 0;
minute++;
if(minute == 60){
minute = 0;
}
}
}
let m = minute < 10 ? "0" + minute : minute;
let s = second < 10 ? "0" + second : second;
let ms = milliseconds < 10 ? "00" + milliseconds : milliseconds < 100 ? "0" + milliseconds : milliseconds;
timerRef.innerHTML = m + ' : ' + s + ' : ' + ms;
}
html格式:'
我爱你#
的复数
控制器
public String addTime(Model model){
model.addAttribute("timeValue", new Time());
return "addTime";
}
@PostMapping("/add")
public String saveTime(Time time){
timeService.saveTime(time);
return "redirect:/solve/main";
}```
1条答案
按热度按时间6kkfgxo01#
我想最简单的想法是从JS发送秒表值,然后通过表单发送到控制器,下面是我的想法:
1.用js和html创建秒表逻辑。
1.创建一个带有隐藏类型输入的表单,当用户单击按钮停止时,使用js、提交事件之前的onClick事件等,用数据完成这些输入。
1.最后通过post请求将表单值发送到控制器。
因为输入是隐藏的,所以只有按钮是表单的可见组件,但是您仍然要将值发送到控制器。