【发布时间】:2013-10-25 05:37:04
【问题描述】:
在jee6 tutorial我可以读到以下内容:
@Named 限定符允许您通过以下方式访问 bean 使用 bean 名称,第一个字母小写。例如, Facelets 页面会将 bean 称为打印机。
您可以为 @Named 限定符指定一个参数以使用 非默认名称:
但是,当我尝试在不添加参数的情况下使用 @Named 时,找不到我的 bean,并且出现如下异常。
@Named
@ViewScoped
public class MTestBean {
...
}
异常;
javax.servlet.ServletException: /MyPage.xhtml @15,65 listener="#{mTestBean.init}": Target Unreachable, identifier 'mTestBean' resolved to null
但是如果我使用
@Named("mTestBean")
一切正常。这是预期的行为吗?有没有办法可以列出 EL 中可用的 bean,也许我假设错误的默认名称?
【问题讨论】:
-
您使用的是 JSF 2.0 还是 JSF 2.2?
@Named和@ViewScoped不能一起使用,除非它是 JSF 2.2。 -
在使用 isf 2.2 但我的 bean 的范围与问题 afaik 无关