首先我的jsf页面为
<h:selectOneMenu
disabled="#{taskFormController.taskFormReadOnly}" id="projectLeader"
style=" width:140px;" value="#{itm.projectLeader}" required="true"
validator="SelectOneMenuValidator"
immediate="true" validatorMessage="Please select project leader.">
<f:selectItem itemLabel="Choose..." itemValue=""></f:selectItem>
<f:selectItems value="#{npdTaskFormBean.selectItemsNpdIssueDuty}" />
</h:selectOneMenu>
我的对应的bean类相关属性为
private List<SelectItem> selectItemsNpdIssueDuty =new ArrayList<SelectItem>();
public List<SelectItem> getSelectItemsNpdIssueDuty() {
return selectItemsNpdIssueDuty;
}
public void setSelectItemsNpdIssueDuty(List<SelectItem> selectItemsNpdIssueDuty) {
this.selectItemsNpdIssueDuty = selectItemsNpdIssueDuty;
}
当我运行该页面的时候报出javax.el.PropertyNotFoundException:Property ‘selectItemsNpdIssueDuty’ not find in npdTaskFormBean里 我首先检查了一下相关属性发现没问题,后来我仔细看了一下代码逻辑,发现是因为该属性为空所导致,后来我修改了一下代码逻辑,给selectItemsNpdIssueDuty赋值之后运行正确。
所以,一般属性找不到无非两个原因,第一是属性名称不对(记得首字母小写)没有对应的get set方法,第二就是代码逻辑导致值为空。
特此记录一下,新手。欢迎指正,谢谢。