【发布时间】:2012-02-07 17:49:38
【问题描述】:
我无法在不同页面的两个托管 bean 之间传递值。 我正在主页中实现一个搜索框 JSF 组件。我请求一些值,当用户点击搜索时,它会转到搜索结果页面。 搜索结果页面有一个 JSF 组件 SEARCH RESUKTS 需要访问托管 bean 中与主页搜索框对应的选择。
我尝试过使用注入,但它显示托管 BEan 框已重新初始化,显示默认值。我从搜索框中选择了一个兴趣,即电影,然后我点击搜索,我会看到搜索结果,我希望看到电影,但我看到的是默认值 Sport。 请在下面找到代码。
搜索结果管理的 Bean
import javax.el.ELContext;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
@ManagedBean
@ApplicationScoped
public class ExpSearchResultsMB {
/** Creates a new instance of ExpSearchResultsMB */
public ExpSearchResultsMB() {
}
@ManagedProperty(value="#{expSearchBoxMB.selectedValue}")
private String selectedValue; // +setter
@ManagedProperty(value="#{expSearchBoxMB.text}")
private String prova;
public String getProva() {
return prova;
}
public void setProva(String prova) {
this.prova = prova;
}
public String getSelectedValue() {
return selectedValue;
}
public void setSelectedValue(String selectedValue) {
this.selectedValue = selectedValue;
}
}
搜索框管理的 Bean
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedProperty;
@ManagedBean
@ApplicationScoped
public class ExpSearchBoxMB {
public Date date;
public List<String> interests=new ArrayList<String>();
public String selectedValue="Sport";
public String getSelectedValue() {
return selectedValue;
}
public void setSelectedValue(String selectedValue) {
this.selectedValue = selectedValue;
}
public List<String> getInterests() {
interests.add("Sport");
interests.add("Musin");
interests.add("Art");
interests.add("Thatre");
interests.add("Cinema");
return interests;
}
public void setInterests(List<String> interests) {
this.interests = interests;
}
我将不胜感激。
干杯
【问题讨论】:
标签: jsf communication managed-bean