smbms项目 跟着狂神写项目时碰到的问题
狂神的smbms项目服务器:tomcat 9
我的使用了 tomcat 10
webapp下的文件 Github上都有 上链接:
https://github.com/chaoqi666/smbms

注:这个项目里的 pwdmodify.js 有个坑 如图修改解决报错

用户登录模块:用户登录的时候 ,密码错误也进入主页了,第一反应就是没对密码进行判断
只判断了用户是否存在,还需加上对密码的判断
LoginServlet.java

用户展示模块:对用户进行查找返回给前端,这里要做角色查询、用户查询、控制页面。
逻辑代码都没错,出现了如下问题

问题一:用户没有全展示出来
问题二:角色展示出问题
问题三:页码控制不展示
针对于“用户不显示”:我第一想到是的后端代码查询,没查到,或者在中间丢了值,及未向前端传值,一点点排除
在UserServiceImpl.Java 进行测试
测试
@Test
public void test(){
List userList = new UserServiceImpl().getUserList(null,0,2,5);
//(3-1)*5 = 10,所以展示的是10~14条数据,但是一共只有12条,注意:MYSQL中结果index从0开始
for (Object o : userList) {
System.out.println(((User)o).getUserName());
}
}
结果:
UserServlet.java

结果

都没问题,前端得不到值,思考后端返回值是否与前端对应的,一 一对比都没错,最后注意到c:这个标签库

jstl标签库可以获取后端setAttribute的值
- jstl中需要获取值的地方一般都要配合EL表达式去使用。
通过了解jstl.jar 、standard.jar包找出了问题所在
因为我使用的tomcat 10服务器,所以要用其他jar包
按照这个配置导入maven 的jar包就基本不会报错,只针对于tomcat 10.10
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>smbms</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp.jstl</groupId>
<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.12</version>
</dependency>
</dependencies>
<!-- 解决不支持发行版本5的问题-->
<properties>
<maven.compiler.source>15</maven.compiler.source>
<maven.compiler.target>15</maven.compiler.target>
</properties>
</project>
如果还有报错就是jstl标签库的问题了看我另一篇随笔 https://www.cnblogs.com/mo-de/p/16812283.html
10.25更新
又一个问题,就是smbms上js乱码问题
试过很多方法都不行,最后在首页-KuangStudy的江湖上找到解决方案
答谢博主
引用博主链接 本文链接:https://www.kuangstudy.com/bbs/1358619326462046209
smbms项目运行后,部分中文在浏览器中显示乱码,该乱码部分是在相应js文件中的

检查原因:
1、html头部标签里已经加了content="text/html; charset=utf-8
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2、引入js时也加了charset=utf8
<script type="text/javascript" src="${pageContext.request.contextPath }/js/time.js" charset="UTF-8"></script>
3、js文件编码也是UTF-8

4、浏览器编码也是UTF-8,也勾选了自动检测,用浏览器打开js文件正常,没有乱码

5、然而 F12 查看js文件却是乱码

百度,暂时解决:
https://blog.csdn.net/u012903926/article/details/52873352
将js文件带上Unicode签名(BOM) (原因不祥)
用nodepad++打开,修改文件为UTF-8 Bom文件,乱码问题就解决了。

没想到这么快,问题又来了
当我修改另一个js文件为BOM文件,运行项目后,浏览器竟然没有加载provideradd.js文件,

就挺突然的,其他js文件都加载了,Ctrl点击也能跳转到该js文件,可浏览器就是不加载

解决:把该js文件删掉,自己创建一个(我之前都是复制粘贴进IDEA的),然后再改为BOM格式,就可以了

本文来自博客园,作者:mo-de,转载请注明原文链接:https://www.cnblogs.com/mo-de/p/16812620.html

浙公网安备 33010602011771号