我遇到了JSF 2.2和CDI的问题,我的managerbean没有解决,而且出现了这个错误
“value =”#{userBean.user.name}“:目标无法访问,标识符'userBean'已解析为null”
这是我的经理bean。
@ManagedBean
@RequestScoped
public class UserBean implements Serializable {
private User user;
public void setUser(user) {
this.user = user;
}
...
}
我的观点是:
<h:form id="login-form">
<h:outputText value="User"/>
<h:inputText value="#{userBean.user.name}" id="username"/>
<h:outputText value="Senha"/>
<h:inputSecret value="#{userBean.user.password}" id="pasword"/>
<h:commandButton id="button" value="Login" action="#{userBean.login}"/>
<h:messages />
</h:form>
答案 0 :(得分:19)
我想与此例外分享我的经验。我的JSF 2.2应用程序在WildFly 8.0中运行良好,但有一次,当我启动服务器时,我得到了这个&#34;目标难以解决的&#34; 异常。实际上,JSF注释或标签没有问题。
我唯一需要做的就是清理项目。完成此操作后,我的应用程序再次正常运行。
我希望这能帮助别人!
答案 1 :(得分:12)
您需要
@ManagedBean(name="userBean")
确保您拥有getUser()
方法。
setUser()
方法的类型应为void
。
确保User
班级也有setters
和getters
。
答案 2 :(得分:9)
我的Java版本是1.6,我发现它使用1.7和CDI,但之后我将Java版本更改为1.7并导入包javax.faces.bean.ManagedBean,一切正常。
谢谢@ PM77-1