Target Unreachable, identifier 'userInfoUpdateBean' resolved to null 错误问题描述以及解决

1、今天出现了一个问题,在点击用户信息修改的时候,出现如下的错误:

Caused by: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'userInfoUpdateBean' resolved to null,具体错误信息如下,其中项目是由JSF模板和Spring整合的:

​
严重: Error Rendering View[/pages/user/userInfoUpdate.xhtml]
javax.el.PropertyNotFoundException: /pages/user/userInfoUpdate.xhtml @36,65 value="#{userInfoUpdateBean.sex}": Target Unreachable, identifier 'userInfoUpdateBean' resolved to null

​

2、开始定位问题,从页面看下有没有问题,为啥这个userInfoUpdateBean为空呢,类名为UserInfoUpdateBean,然后再去找bean的配置文件,如下所示:

	<bean id="userInfoUpdateBean" scope="view"
		class="com.user.info.bean.userInfoUpdateBean"
		init-method="init">
		<property name="userInfoServiceI">
			<ref bean="userInfoServiceImpl" />
		</property>
	</bean>

这里也没有问题呀,再去类底下看是不是setSex方法里面的属性写成大写了,发现也没有问题,添加多一个无参的构造方法都没用,还是依旧报错。后面想想是不是被拦截了,发现也没被拦截器拦截呀。

3、去找资料,改着试了几个小时都没用,最后,用另外一种方法,把界面报错的给注释掉,然后一步步看,到底问题是出现在哪里,后面发现,只有两个有单选框的标签才会出现这种问题,把我坑得不要不要的,顿时觉得自己好菜鸡,单选框原先是这样写的:

<p:selectOneRadio id="sex" initSelectItemLabel="男" value="#{userInfoUpdateBean.sex}">
    <f:selectItem itemLabel="男" itemValue="男" />
    <f:selectItem itemLabel="女" itemValue="女" />
</p:selectOneRadio>

4、就是因为这个selectOneRadio这个标签的initSelectItemLabel属性,给这个加了个属性,就会报上面的错误,最后去掉这个属性,便不会报这个错误了,最后代码如下:

​
<p:selectOneRadio id="sex" value="#{userInfoUpdateBean.sex}">
    <f:selectItem itemLabel="男" itemValue="男" />
    <f:selectItem itemLabel="女" itemValue="女" />
</p:selectOneRadio>

​

5、后面发现页面上虽然显示不会报错了,但是其实还是有问题的,initSelectItemLabel这个属性是不会影响的,这个只是初始化选择列表的标签,即单选框默认选择什么的。后面我对这个页面进行保存操作,还是依旧报错,信息还是一样:

Caused by: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'userInfoUpdateBean' resolved to null

接着我就发现这个bean是不是找不到,就在Bean底下加了个注解@ManagedBean(name="userInfoUpdateBean"),发现竟然可以找到了,但是这不是我的始终,因为我还要执行初始化的init方法,并且我这个还是整合的Spring的,最后终于发现了,原来是没加载到这个配置bean的xml文件。

6、因为整合的时候需要加载的bean的xml文件统一导入在一个整体目录的applicationContext-beans.xml文件中,接着在这里面所在位置加上一行导入的语句如下:

<import resource="com/user/info/bean/configure/application-user-beans.xml" />

接着就可以进入初始化的方法,并且我们这边的initSelectItemLabel这个属性也起作用了,原因仅仅就是找不到bean,所以细节很重要啊。

7、以上就是我所遇到的坑,在这里积累一下,细节,细节,细节真的决定成败!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值