前言
刚开始学springboot的框架的踩坑总结。
一、创建springboot项目
比较重要的几个点,然后下一步选择需要的东西
创建好后,因为用jsp需要自己弄没有webapp的结构,
按照结构创建,这里不做重点讲
二、依赖导入
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 添加servlet依赖模块 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<!--添加tomcat依赖模块.-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!--引入Spring Boot内嵌的Tomcat对JSP的解析包,不加解析不了jsp页面-->
<!--如果只是使用JSP页面,可以只添加该依赖-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--如果使用JSTL必须添加该依赖-->
<!--jstl标签依赖的jar包start-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
</dependencies>
三、数据库连接
数据源的配置,还有一些其他的,包括访问跳转的一些操作
这个很重要,返回的是跳转的页面,比如我们需要访问login.jsp页面,则我们就可以localhost8080:/login,前面配置文件中已经做了处理,否则需要写xx.jsp,
这个包的结构也有讲究。
view:
prefix: /WEB-INF/jsp/
suffix: .jsp
这里只能访问到jsp包下面的jsp文件,子包里面的jsp需要像上面的写法才可以访问
四、关于layui的接口跳转发送的一些问题
<script>
layui.use(function(){
var form = layui.form;
var layer = layui.layer;
// 提交事件
form.on('submit(demo-login)', function(data){
var field = data.field; // 获取表单全部字段值
var elem = data.elem; // 获取当前触发事件的元素 DOM 对象,一般为 button 标签
var elemForm = data.form; // 获取当前表单域的 form 元素对象,若容器为 form 标签才会返回。
// 显示填写结果,仅作演示用
// layer.alert(JSON.stringify(field), {
// title: '当前填写的字段值'
// });
// 此处可执行 Ajax 等操作
$.ajax({
url: '/login_check', // 后端接口URL
type: 'POST',
data: JSON.stringify(data.field), // 将表单数据转换为JSON字符串
contentType: 'application/json', // 设置请求头的Content-Type为application/json
success: function (response) {
console.log(response)
//手动分割,response.redirect打印为undefined
var splitArray = response.split('"');
var redirectValue = splitArray[3];
console.log(redirectValue)
window.location.href = "http://localhost:8080"+redirectValue; // 跳转到指定页面
}
});
return false; // 阻止默认 form 跳转
});
});
</script>
登录表单的提交,接口为:
@Controller
public class LoginController {
@Autowired
private LoginDao loginDao;
@PostMapping("/login_check") // 对应前端Ajax请求的URL
public ResponseEntity<String> handleFormSubmit(@RequestBody Login login) {
System.out.println(loginDao);
String username = login.getUser();
String password = login.getPassword();
System.out.println(username+"----"+password);
int result=loginDao.getByUseAndPass(username,password);
if (result>0){
//跳转页面
// 登录成功,返回跳转URL
String redirectUrl = "/index_salary";
return ResponseEntity.ok().body("{\"redirect\": \"" + redirectUrl + "\"}");
}
// 处理表单数据
// 可以将接收到的数据存储到数据库、进行业务逻辑处理等操作
return null; // 返回响应结果
}
}
这里注意表的字段,以及实体类的字段,还有jsp中input框的name属性需要保持一致。
暂时总结到这里。