我有一些我无法理解的行为, 所以我最近开始学习JSF,我使用TOMCAT 6,现在我创建了JSF文件,我在不同的包下创建了两个Managed Beans,但是每个bean都有相同的名称。 1.第一个bean是 com.app.TestBean。 2.第二个bean是 jsftest.TestBean。 现在,当我调用我的JSF页面时,我会调用第一个bean,如果我重新启动TOMCAT,我得到第二个bean的结果,任何机构都能解释我在这里做错了吗?
答案 0 :(得分:1)
除非您明确指定其名称,否则bean会根据其类名分配其名称/ ID。
所以TestBean将是:testBean
因此,如果您有类名冲突,则需要明确指定其(不同的)名称。
例如,如果您使用的是注释(我怀疑是这种情况),您需要这样做
package com.app;
@ManagedBean("testBean1")
public class TestBean {
...
}
和另一个豆
package jsftest;
@ManagedBean("testBean2")
public class TestBean {
...
}
然后使用#{testBean1}或#{testBean2}