2011-12-08 22 views
0

我的问题是我如何检索选择的项目支持豆如何检索用户从下拉菜单中选择的项目?在jsf

在我看来的网页我有一个选择框组件:

<h:selectOneMenu id="materialCat" value="#
{materialMasterBean.materialDTOs.materialCategoryId}" required="true" requiredMessage="Material Category is Mandatory"> <f:selectItem itemLabel="select" itemValue="-1" /> <f:selectItems value="#{materialMasterBean.materialCatList}" />
</h:selectOneMenu>

这是我支持bean

'公共的ArrayList getMaterialCatList(){ 如果(materialCatList == NULL){

 materialCatList= new ArrayList<SelectItem>(); 
     ArrayList<MaterialDTO> temp; 
     try { 
       temp= getAdminDelegate().getMaterialLsit(); 
       for (int i = 0; i < temp.size(); i++) 
        { 
        MaterialDTO materialDTO = temp.get(i); 
         item = new SelectItem(materialDTO.getMaterialCategoryId(),materialDTO.getMaterialCategory()); 
         materialCatList.add(item); 
        } 
      } catch (Exception e) { 
     // TODO Auto-generated catch block 
         e.printStackTrace(); 
       } 

     return materialCatList; 
    } 
    else 
    { 
     return materialCatList; 
    } 

} 

` 还支持豆我公顷五个:

private MaterialDTO materialDTOs; 请帮我

+0

究竟是什么问题?你不能只在action方法中访问'materialDTOs.getMaterialCategoryId()'吗? JSF已经在那里设置了它。 – BalusC

+0

是的。那就是问题所在。 – macroAbc

+0

为什么这是一个问题?究竟发生了什么?您在描述具体问题时并不清楚。 – BalusC

回答

0

您可以访问它在你的bean,如果你与value="#{bean.filed}属性绑定它

编辑:here是关于如何做一个selectonebox一个例子,我想你错过了一些事情。你想在列表中选择一个MaterialDTO对象吗?或一个Id?你不需要一个ArrayList与SelectItem ...

+0

我试过,但它给出错误,因为javax.el.PropertyNotWritableException:/pages/MaterialMasterl.xhtml @ 45,73 binding =“materialMasterBean.materialCode”:设置操作的非法语法 – macroAbc

+0

编辑我的答案... – jk2

相关问题