目录
刚转来用IDEA没多久,写项目时遇到修改html和js的数据还要重启才能更新。what?还能被这个难住?
百度了很多,基本上无非就是改2种设置,那么到底改哪些才是有用的呢?当然可以一股脑全改了,但是总不能一直不求甚解吧。
测试一:
方法一:
就是下面这种,在settings里找到如下目录,并且勾选build project automatically
按下 ctrl+shift+alt+/ 打开如下界面,并勾选图中内容
经过测试,设置这两个并没有用。
需要在pom.xml文件中添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
这两部联合起来在我的机器上已经可以使用了。
测试代码:
test.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>姓名:<span th:text="${name}">未知</span></p>
<p>年龄:<span th:text="${age}">未知</span></p>
</body>
</html>
testcontroller
package com.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.Map;
@Controller
public class testcontroller {
@RequestMapping("show")
public String letshow(Map<String, Object> paramMap){
paramMap.put("name", "干什么");
paramMap.put("age", 1000);
return "test";
}
}
测试效果
下面开始修改内容,修改name的值为成功
注意:修改的时候不用停止项目运行
修改testcontroller
package com.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.Map;
@Controller
public class testcontroller {
@RequestMapping("show")
public String letshow(Map<String, Object> paramMap){
paramMap.put("name", "成功");
paramMap.put("age", 1000);
return "test";
}
}
改完后发现控制台没有反应,还是停留在第一次启动的页面
清空控制台,刷新运行页面
发现控制台有了更新
这时候切换回页面,如果还是没有更新数据,那么再刷新一下
发现更新成功了。
测试二:
方法二:
按照上图2个步骤进行更改设置
在pom.xml文件里添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
运行
controller
package com.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.Map;
@Controller
public class testcontroller {
@RequestMapping("show")
public String letshow(Map<String, Object> paramMap){
paramMap.put("name", "成功");
paramMap.put("age", 1000);
return "test";
}
}
测试效果
清空控制台并修改controller
package com.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.Map;
@Controller
public class testcontroller {
@RequestMapping("show")
public String letshow(Map<String, Object> paramMap){
paramMap.put("name", "hello world!");
paramMap.put("age", 1000);
return "test";
}
}
刷新页面,发现控制台有更新
页面也更新成功了。
总结:推荐使用方法二
方法一、方法二都能成功实现Spring boot项目修改html,js数据后刷新。
但是在方法一修改的过程中,有一个发现:
翻译成中文就是:
即使开发的应用程序当前正在运行,也允许自动生成启动。请注意,自动启动的make最终可能会删除应用程序所需的一些类。
目前我在使用的过程中还没有发现删除了什么,但是可能存在隐患?所以我推荐方法二。
欢迎留言讨论!