我有一个像这样的组合框:
<rich:select id="foo" value="#{fooVo.selectedFoo}" defaultLabel="Please select one">
<f:selectItems value="#{fooVo.fooList}"/>
</rich:select>
当我尝试从列表中选择条目时,fooVo.selectedFoo
为空。我发现fooVo.selectedFoo
的设定者不是电话。
这是豆子:
@ManagedBean(name="fooVo")
@SessionScoped
public class FooVo {
private List<SelectItem> fooList = new ArrayList<SelectItem>();
private String selectedFoo;
/** getter and setter **/
}
假设selectedFoo
应填写所选条目,我可否知道应如何解决此问题?
12月15日更新 - fooList如何更新?
列表的构造在DAO中:
public List<SelectItem> getFooList() {
List<SelectItem> newList = new ArrayList<SelectItem>();
Integer theValue = ...;
String theLabel = ...;
newList.add(new SelectItem(theValue.toString(), theLabel));
}
然后newList
将返回BOC并由本地变量保持,在完成其他一些处理工作后,此newList
将移动到另一个ActionBean类,如下所示:
public List<SelectItem> processFooList() {
...
List<SelectItem> theList = theDao.getFooList();
return theList;
}
而在ActionBean类中,此列表最终将通过Spring依赖注入到达托管bean fooVo
:
@ManagedBean(name="theAction")
@SessionScoped
public class ActionBean {
@ManagedProperty(value="#{fooVo}")
private FooVo fooVo;
public void setTheBo(IBoc theBo) {
this.theBoc = theBo;
this.FooVo.setFooList(theBo.processFooList());
}
}
我在设置器Spring DI期间填写了fooVo
的fooList,因为我想在页面加载时准备好fooList
。