Spring-Security 登录失败,Did not find handler method for [/user/findById.do]
第一次是因为 permission 写成了 perimisson
附上数据库表格截图
第二次是因为 role_permission 写成了 role_perimisson
第三次是因为括号里面的
select permissionId from role_permission where roleId=#{id}
写成了
select * from role_permission where roleId=#{id}
第四次是因为写成了这个样,检查后发现写 #{id} 时,右括号可能 shift 键没按到
@Select("select * from permission where id in (select permissionId from role_permission where roleId=#{id) )"
第五次检查日志文件,还是发现 BUG 在 IPermissionDao.java 中的 Sql 语句
上面的代码经过第四次改错之后,变成了这样
@Select("select * from permission where id in (select permissionId from role_permission where roleId=#{id} )"
仔细琢磨了一下,发现是少了个括号,崩溃了
@Select("select * from permission where id in (select permissionId from role_permission where roleId=#{id) )")
继续运行项目,发现还是有 BUG ,但是这次没有 Error 了,就是不报红色了
继续查看日志文件
发现找不到 find.do 这个方法
开始一步步,从 jsp界面 ——> Controller 层的代码 ——> Service 层的实现类 ——> Dao 层的方法名称
发现 findById 名称都是没问题的
最后找到 UserController.java
@RequestMapping没有问题
再检查 findById 方法里面的 @RequestMapping
出大问题,find 少了个 d