Struts Problem Report Struts has detected an unhandled exception:

来源:互联网 发布:php asp jsp 区别 编辑:程序博客网 时间:2024/04/29 23:12

这两天刚入手 Struts2.  遇到的问题多种多样,这不,今天又遇到了一个问题,花了一整天来研究。 虽说是浪费了时间,但是对于初学的我自认为学到很多,因为解决问题的过程收获是很多的。

问题如下:


请求页面返回这样的结果:


咋一看:  是空指针异常,但对入门Struts2 的我根本无从下手。 因为我的配置文件等等都没有问题,且其它类似的请求都能正常显示。

各种千寻万找,发现Action  类有这么一个语句  :


看到这样的语句,我相信有经验的同仁已经看出问题所在了,

是的。

就是  :   user.xxx   的问题。

因为当  user 为空(null) ,如果其用 .(点)  的方式那么就是出现空指针异常,这在初学JAVA很常出现。(再次暴露了我是新手的身份!!)。

找到这个原因的大费周折,大张旗鼓,哎!!!!都是泪(谁让我是新手尼,不怪我)。


其实对我来说重要的不仅此,更重要的是。 怎么判断 user  何时为空何时不为空。

没有丧气的我再次发起“研究”:

先简要说下我此时业务逻辑,我是做登录功能:

a  路径-----------------------》 A  登录首页;

b 路径------------------------》 B 登录成功后的欢迎页。

我如果按正常流程:

先进a 路径--》看到 A登录首页--》填完信息 点击登陆请求到  b 路径----》看到B欢迎页。   这是没有问题的。


但是。我就突发奇想的直接  请求b 路径看看结果。 很遗憾,结果就是文章题目的错误。

那问题来了,user 是什么时候被实例化(不为空)呢?

a 路径吗,不太可能,那只有 A页面了。


去看看A页面:有这么一个地方很奇怪:  表单 form 里面有个


又是  user.     看来应该就是这里了。我再在次确认:

 我删除  user.    直接 用  userPhone  和 userPassword  那么之前正常的  也会同样报错。所以我确认就是这里的错误了。


最终找到了自我总结的结论 :   JSP  表单里面的    user.    当(submit)提交到 Action 后会实例化对应 Action  的 User 类。



哎算是一种收获吧。 

我还注意到一些问题,可能对老手们习以为常,但对我来说还是初次体会到这种情况,小白们也可以去实践一下:


1, 当我从登录页成功跳到欢迎页(上文我说的正常情况),我用(Chrome) F5 刷新浏览器时总会弹出这么一个提示框:

 内容大概的意思是  :  会提交一些请求,要继续吗?


平时刷新浏览器什么都不会弹,但是这个却会弹框。 这个望大神赐教了。


2.   把当前登录成功后欢迎页上方的路径 复制到新开的的窗口打开 也是报错。我自己认为这和第1点有些关系。 我觉得 F5 刷新和  建立新的请求时不一样 。 具体请大神们点评了。


3.   我在欢迎页JSP 随便加了一个按钮 “登录11” ,此时  登录Action 的  user(不为空)

随便请求到  另外的注册Action 吧。 按照正常流程然后点击该按钮, 结果是报错。   注册Action 也有 user.   的代码,  打印也是 null.

  

现在我大约的总结了:  Struts2 每次请求都是一个独立的Action ,action 之间对象不共享。



0 0
原创粉丝点击