SpringBoot的js,css文件路径
Springboot 正确引用js的方法,注意一下三点
- 如果Controller类名上有RequestMapping("/aa"),src中要写两个点,static文件夹中的直接引用,使用
src="../js/jquery-3.3.1.min.js"
- 在index.html中引入JS文件时,直接的写法
src="./js/sockjs.min.js"
- jquery应该在个人和引用的js前才行
<script src="../js/jquery-3.3.1.min.js"></ script>
<script src="../js/bootstrap.min.js"></ script>
<link rel="stylesheet" href="../css/bootstrap.min.css">
<script src="../js/consultant.js"></ script>
在JS文件中获取项目路径使用时直接调用方法即可
function getRootPath() {
//获取当前网址,如: http://localhost:8088/proj/proj.jsp
var curPath = window.document.location.href;
//获取主机地址之后的目录,如: proj/proj.jsp
var pathName = window.document.location.pathname;
var pos = curPath.indexOf(pathName);
//返回主机地址http://localhost:8088
return curPath.substring(0, pos);
}
function getRootProjectPath() {
//获取当前网址,如: http://localhost:8088/proj/proj.jsp
var curPath = window.document.location.href;
//获取主机地址之后的目录,如: proj/proj.jsp
var pathName = window.document.location.pathname;
var pos = curPath.indexOf(pathName);
//获取主机地址,如: http://localhost:8088
var localhostPath = curPath.substring(0, pos);
//获取带"/"的项目名,如:/proj
var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1);
return (localhostPath + projectName);//http://localhost:8088/proj
}
SpringBoot的@Valid注解的使用错误示例
@valid注解注释一个参数以后必须紧跟着BindingResult参数,否则会报Field error in object ‘xxx’ on field ‘xxx’: rejected value错误
==正确写法==
public void loginPost(@Valid Access access, BindingResult validate, HttpSession session) {}
==错误写法==
public void loginPost(@Valid Access access, HttpSession session, BindingResult validate) {}
SpringBoot访问地址遇到404
按照下列步骤检查:
首先: 确定配置的前后缀是否和文件一致。
# 如果是idea,默认的位置是webapp :
# 配置前缀,默认的位置是src/main/webapp 这里可以更换,比如/pages/ 那么目录就变成了src/main/webapp/pages
spring.mvc.view.prefix=/pages/
# 后缀
spring.mvc.view.suffix=.html
# 如果是eclipse,默认的位置是/resources/static:
# 配置前缀,默认的位置是src/main/resources/static 这里可以更换,比如/pages/ 那么目录就变成了src/main/resources/static/pages
spring.mvc.view.prefix=/pages/
# 后缀
spring.mvc.view.suffix=.html
第二: 是否配置了项目别名。
# 如果不配置http://127.0.0.1:8000/index
# 项目启动别名,配置了以后 http://127.0.0.1:8000/name/index
server.servlet.context-path=/name
第三: Controller里面是否mapping路径一致,是否有二级路径。
@Controller
@RequestMapping("/index") //一级路径
public class StudentController {
@Autowired
private StudentService studentService;
@RequestMapping("/demo") //二级路径
public String getAllStudent() {
//code
}
}
第四: @SpringBootApplication启动类是否扫描了项目Controller,Service等等所在的包。
直接查看项目是否是如下结构:
可以看到笔者所有的功能包和类都在启动类ShareCodeApplication
的包com.example.demo
下,由于@SpringBootApplication
注解默认只会扫描该类所在的包(父包)以及其下的包(子包),因此如果写到别的地方就无法扫描到,因此也无法访问到Controller
,错误示范如下,可以对比体会下:
第五: @SpringBootApplication由于某些原因确实无法实现上述结构怎么办。
可以手动指定扫描包@SpringBootApplication(scanBasePackages = "com.example.demo")
,由于scanBasePackages
是一个数组,因此我们也可以指定多个包@SpringBootApplication(scanBasePackages = {"com.example.demo","com.example.controller"})
确保需要用到的类都被扫描到。