该开始一直按错误去进行查询

 看到网上的主要解决方法:

1.注入的数据类型加入注解@Autowired,

2.service层添加注解@Service

3.在controller层,添加注解@RestController 而不是 @Controller

4.并在JSON数据前加上@RequestBody

5.spring-boot包冲突,再pom.xml文件中删除这个包

org.springframework.boot

spring-boot-starter-web

compile

针对后面抛出的异常java.lang.NullPointerException

出现的原因就是当一个对象的值为空时,你没有判断为空的情况

解决方式即可以优先使用

String.valueOf()方法代替toString() 当程序代码需要对象的字符串表示形式时,应该避免使用该对象的toString方法。如果你的对象的引用等于null,NullPointerException则会抛出,使用静态String.valueOf方法,该方法不会抛出任何异常并打印"null"

亲测有用,但是并没有解决我们下面的问题。就是存了两个数据,但是读出的只有一个数据。

在以上这些方式检查过之后,发现并没有改变现有的情况。所以开始一步一步调试。发现如下结果:

 这里的存储阶段是没有问题的,存储了两个参数

 这里日志语句给出map的大小为1,这里是不应该的,因为前面我在session设置时是两个值。

 这里调试到这一步 ,就突然跳转到下面了

此时就换了查找思路:去看了

session.setAttribute()和session.getAttribute()的用法。发现也有很多这种情况出现。所以开始针对这样的问题进行修改

尝试1:、如果存在取值问题,取不到session中的值,可能是存值的地方和取值的地方引入的HttpServletRequest不一致。就会出现拿不到值的情况!

但是我们这里存储的位置都是

HttpSession

尝试都修改成HttpServletRequest

未解决!!!

思路三:发现两次的session地址和存值都是正确的,但是map读取时,只读出了一个值

 

 所以开始查询session中为什么map会只读取到一个值??对比了源代码

我所配置的login.html文件

 

原文件所配置的login.html文件

 修改原文件格式之后,成功获取到map的两个值。

总结:刚开始是按照报错开始查询解决方式。但都没有解决我的问题。

        然后开始对异常类型,自己所遇到的问题描述,进行了一系列查询。过程如上,也是没有效果。

        最后实在是不行了 ,但是从一步一步的调试也大概知道问题是出在了,map无法取出页面上输入的第二个值。所以就开始比对自己所配置的login.html文件,发现此处的loginApi所注入的方式不同。

还是关键:解决问题的操作并不重要,解决问题的这个思路才是最重要的。

PS:虽然解决了这个问题但是为什么就成功了 还是不知道。有没有大佬可以解答一下,两种表达方式有什么区别呢???最开始的问题也是,map中只有一个页面上提交的phone,但是没有另一个值。修改成第二个格式后,客户端提交的两个值都显示了。。

 

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: