我们都知道我们可以在Java类Get JSF managed bean by name in any Servlet related class
中获取任何Bean名称现在我的问题是我有3个Bean和3个不同的JSF / XHTMl页面,所有3个JSF / XHTML页面打开一个弹出窗口,其中包含相同的组件,现在我们使用了3个不同的弹出窗口及其工作
但是我想只使用一个弹出窗口应该使用,所以这里的问题是我必须从Popup调用一些方法到相应的Parent Bean。
因此,我想将bean名称作为参数传递给action属性。现在我知道哪个bean类是Popup Window的父类。
<h:commandButton value="button" action="#{popupbean.someMethod(Parentbeanname)}"
在我的Popupbean.java中,如果我将bean名称作为字符串,我已经编写了这段代码
public void addFeature(String beanName){
Bean bean = (Bean) request.getSession().getAttribute("beanName");
}
或者我会得到课程名称
public void addFeature(object className) {
if (classname instanceof Abean) {
ABean abean = (Abean) classname;
abean.callSomeMethod();
} else if (classname instanceof Bbean) {
BBean abean = (Bbean) classname;
bbean.callSomeMethod();
}