需要澄清JSF和托管bean

时间:2016-03-17 22:45:06

标签: jsf managed-bean

我有一些我无法理解的行为, 所以我最近开始学习JSF,我使用TOMCAT 6,现在我创建了JSF文件,我在不同的包下创建了两个Managed Beans,但是每个bean都有相同的名称。  1.第一个bean是 com.app.TestBean。  2.第二个bean是 jsftest.TestBean。 现在,当我调用我的JSF页面时,我会调用第一个bean,如果我重新启动TOMCAT,我得到第二个bean的结果,任何机构都能解释我在这里做错了吗?

1 个答案:

答案 0 :(得分:1)

除非您明确指定其名称,否则bean会根据其类名分配其名称/ ID。

所以TestBean将是:testBean

因此,如果您有类名冲突,则需要明确指定其(不同的)名称。

例如,如果您使用的是注释(我怀疑是这种情况),您需要这样做

package com.app;

@ManagedBean("testBean1")
public class TestBean {
  ...
}

和另一个豆

package jsftest;

@ManagedBean("testBean2")
public class TestBean {
  ...
}

然后使用#{testBean1}或#{testBean2}