JSF请求范围Bean中的静态数据列表框?
在由JSF实现呈现的屏幕中,我必须显示一个静态下拉列表或列表框(这意味着值没有改变),因此我决定使用一个选择项列表,在列表的getter中,我填充所有选择项,如下所示JSF请求范围Bean中的静态数据列表框?,jsf,Jsf,在由JSF实现呈现的屏幕中,我必须显示一个静态下拉列表或列表框(这意味着值没有改变),因此我决定使用一个选择项列表,在列表的getter中,我填充所有选择项,如下所示 List.add(new SelectItem(VALUE,TEXT)) and so on.. 如果我用这种方式-有什么陷阱?我将此列表设置为静态列表,因为这对于JSF实现创建的所有请求范围bean都是通用的。这样可以吗 有时,如果触发多个请求,则会添加两次项。是否存在应用程序范围?或者做这些事情的标准方式是什么 我也在研究
List.add(new SelectItem(VALUE,TEXT)) and so on..
如果我用这种方式-有什么陷阱?我将此列表设置为静态列表,因为这对于JSF实现创建的所有请求范围bean都是通用的。这样可以吗
有时,如果触发多个请求,则会添加两次项。是否存在应用程序范围?或者做这些事情的标准方式是什么
我也在研究API。有时这样更快
我正在使用JSF Apace My Faces 1.2,没有Tomahawk或任何额外的libs
谢谢
有时,如果触发多个请求,则会添加两次项
这表明您正在getter方法中添加如下项
public class Bean {
private List<SelectItem> items = new ArrayList<SelectItem>();
public List<SelectItem> getItems() {
items.add(new SelectItem("value1", "label1"));
items.add(new SelectItem("value2", "label2"));
items.add(new SelectItem("value3", "label3"));
return items;
}
}
是否有适用范围
有。只需使用应用程序
或者做这些事情的标准方式是什么
一个应用程序范围的bean是一个不错的选择
另见:
public class Bean {
private List<SelectItem> items;
public Bean() {
items = new ArrayList<SelectItem>();
items.add(new SelectItem("value1", "label1"));
items.add(new SelectItem("value2", "label2"));
items.add(new SelectItem("value3", "label3"));
}
}
public class Bean {
private List<SelectItem> items;
{
items = new ArrayList<SelectItem>();
items.add(new SelectItem("value1", "label1"));
items.add(new SelectItem("value2", "label2"));
items.add(new SelectItem("value3", "label3"));
}
}
public class Bean {
private List<SelectItem> items;
@PostConstruct
public void init() {
items = new ArrayList<SelectItem>();
items.add(new SelectItem("value1", "label1"));
items.add(new SelectItem("value2", "label2"));
items.add(new SelectItem("value3", "label3"));
}
}