加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
MyObjectLog.txt 4.13 KB
一键复制 编辑 原始数据 按行查看 历史
BushHuang 提交于 2019-03-24 19:04 . 我的修改日志
将SSM+Eclipse转为SpringBoot+IDEA中遇见的问题
1、导入项目我是选择的复制,看网上的资料可以将Eclipse的项目直接导入成IDEA的项目,但我没试过。
2、创建SpringBoot项目时,我选择了web+mysql+myBatis+JDBC,不过有更好的选择方案,比如页面选择Thymeleaf(因为SpringBoot中使用JSP真的太难受了。)、JPA数据库操作(封装了HSQL)、webService(看样子很厉害的,但不会用)
3、项目创建后,看到的包结构与之前的SSM框架项目不同。
main
--java
--com.hyf.food
--FoodApplication(Springboot启动器)
--resources
--static(放置静态文件,比如xml/img等,但我没使用)
--templates(不知道)
--application.properties(配置文件)
test
pom.xml(jar包依赖)
4、jsp页面放哪?图片放哪?前端框架放哪?百度后我直接在resources下建立了一个webapp文件夹,然后把eclipse项目中webapp文件全部复制过来。(按照springboot包结构来讲,应该不是这么做。具体不清楚)
但是springboot项目不让建jsp,还是通过百度才建立。
5、所有代码复制完毕之后,就是启动项目。项目启动没有使用tomcat,而是idea(或者是springboot)自身带的服务器。我尝试着配置了一下外部tomcat,然后无法启动。
6、项目启动到没什么大问题,貌似session报错
在application里加了spring.session.store-type=none
才能直接访问action,进行数据库操作时要加上一下配置
#datasource
spring.datasource.url=jdbc:mysql://localhost:3306/food?characterEncoding=utf-8&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#mybatis
mybatis.mapper-locations=classpath:Mapper/*.xml
但是访问不了JSP页面。
7、先是在application配置文件上写了
spring.mvc.view.prefix=/webapp/
spring.mvc.view.suffix=.jsp
application.message: Hello Phil
之后加了几个jar,才能访问
!-- spring boot tomcat jsp 支持开启? -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
8、对于访问路径而言,无需再前面加上项目名。
9、令我最头疼的问题出现了,在进行添加操作时,我使用的是Ajax+FormData的模式,但是点击后都没有访问过后台。这个问题折腾了我一夜,还是没解决。
10,期间我认为是ajax访问链接有问题,然后无问题,之后我认为是后台接收的问题,加了post和resquestbody,能访问后台了,但传值了null。
11,之后又出现了各种小问题,已经解决问题的方向偏了很多,浪费了很多时间。最后,我看上了FormData 这个方法,去掉之后改用了最传统的JSON 在加上后台的Resquestbody,终于能获取对象了
@RequestMapping("addExpenseMsg.action")
public String addExpenseMsg(Model model,HttpSession session,@RequestBody Expense expense){
System.out.println("准备添加支出0------------------------------------------"+expense.getex_name());
int i = ExpenseServiceImpl.addExpenseMsg(expense);
if(i == 1){
System.out.println("之处添加成功————————————————-"+i);
return "成功";
}else{
System.out.println("支出添加失败-----------------------");
model.addAttribute("error", "添加失败!请重试。。。");
return "失败";
}
}
$.ajax({
url:"${pageContext.request.contextPath }/addExpenseMsg.action",
type:"post",
contentType:"application/json;charset=utf-8",
data:JSON.stringify({ex_name:ex_name,ex_price:ex_price,ex_other:ex_other,ex_regtime:ex_regtime}),
success:function(data){
alert(data+"添加成功");
layer.close(index);
},
error:function(e){
alert("错误!!");
window.clearInterval(timer);
}
});
12,至此程序能基本运行正常。
13,页面显示日期时,是在layui的数据表格中,是NANAN值,解决方法是把之前写在JSP上的日期转换代码去掉即可,不需要转换。
14,另外,在配置application文件时,配了一个日期格式化的参数,据测试是这个配置参数起到了作用,能把前后台传的日期的值,自动转化。
15, 查资料的过程中看到了RESTFul框架,学习,以及不使用JSP页面。
16,另一个问题,我不清楚我的数据库有没有使用数据库连接池,但看了一下项目中的jar包,有cglib数据库连接池的存在。难道存在即配置??
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化