在类中使用托管bean设置变量,并从另一个托管bean中的此类获取变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在类中使用托管bean设置变量,并从另一个托管bean中的此类获取变量相关的知识,希望对你有一定的参考价值。
我发布了类似的问题。看看here。我解决了在托管bean之间共享值的问题。我的新问题是分享我在一个类中的一个mangedbean中设置的值。并希望在antoher manged bean中获得此值。这是解释我的问题的代码示例。
@ManagedBean
@SessionScoped
public class Example{
String hello = "hello";
private TestClass test = new TestClass();
String myVarBean = hello;
public next(){
test.setmyVar(hello);
}
public String getMyVarBean(){
return myVarBean;
}
}
@ManagedBean
@SessionScoped
public class Example2{
@ManagedProperty(value = "#{Example}")
private Example example;
String testString;
private TestClass test = new TestClass();
public after(){
String testInt = test.getmyVar(); // I get null because it is antoher instance
String testInt = example.getMyVarBean(); // i get "hello"
}
public void setExample(Example example){
this.example = example;}
}
public class TestClass{
private String myVar;
public void setMyVar(String var){
this.myVar = var;
}
public String getMyVar(){
return myVar;
}
}
但我想要TestClass中的值。
答案
有了它,您可以在会话映射中放置和获取自定义对象
public final class FacesManager {
public void putObjectIntoSessionMap(final String key, final Object value) {
FacesContext.getCurrentInstance().getExternalContext().getSessionMap()
.put(key, value);
}
public Object getObjectFromSessionMap(final String key) {
return FacesContext.getCurrentInstance().getExternalContext()
.getSessionMap().get(key);
}
}
以上是关于在类中使用托管bean设置变量,并从另一个托管bean中的此类获取变量的主要内容,如果未能解决你的问题,请参考以下文章
我可以在一个xhtml页面中使用多个xhtml页面以及如何访问(引用它们)托管bean类中的那些页面吗? [重复]
JSF页面中给出的输入不会将该值设置为托管bean变量[duplicate]
在任何 Servlet 相关类中按名称获取 JSF 托管 bean
如何以编程方式将 Java CDI 托管 bean 注入(静态)方法中的局部变量