Maria
Maria

Reputation: 11

item selection from <h:selectOneMenu> does not change bean property

I face with situation, when item selection from does not change bean property. Method setCurrentOrg() does not invoked. Managed bean code is:

@ManagedBean(name = "requestAccessBean")
@RequestScoped
public class RequestAccessSection {  
private List<AccessRight> accessList;
private List<OrgUnit> orgList;   
private String currentOrg;  

public String getCurrentOrg() {
return this.currentOrg;
}

public void setCurrentOrg(String currentOrg) {  
this.currentOrg = currentOrg;
}

public List<AccessRight> getAccessList() {
 if (this.accessList == null) {
  this.accessList = returnAccessList();
 }
return this.accessList;    
}

public void setAccessList(List<AccessRight> accessList) {
  this.accessList = accessList;
}

public List<OrgUnit> getOrgList() {
  if (this.orgList == null) {
    this.orgList = returnOrgList();
  }
 return this.orgList;
}

public void setOrgList(List<OrgUnit> orgList) {
  this.orgList = orgList;
}  

public List<OrgUnit> returnOrgList() {
 List<OrgUnit> orgList = new ArrayList<OrgUnit>();
 orgList = getOfficeBranches();  
 return orgList;
}

public List<AccessRight> returnAccessList() {
  List<AccessRight> accessList = new ArrayList<AccessRight>();   
  accessList = getAccessList();
  return accessList;
}

}

Page is:

    <h:form>
    <h:selectOneMenu id="orgList" value="# {requestAccessBean.currentOrg}">
     <f:selectItem itemLabel="--select--" itemValue="null"></f:selectItem>
       <f:selectItems value="#{requestAccessBean.orgList}" 
                var="org" itemLabel="#{org.ou}" itemValue="#{org.globalid}"/>
    <f:ajax event="change" execute="@this" render="accessTable"/>
</h:selectOneMenu>  

<h:dataTable var="access" value="#{requestAccessBean.accessList}"
            binding="#{requestAccessBean.htmlDataTable}" id="accessTable">
    <h:column>
        <h:selectOneRadio onclick="radioButton(this);" id="selectAccess" 
                valueChangeListener="#{requestAccessBean.setSelected}">
            <f:selectItem itemValue="null" />
        </h:selectOneRadio>
    </h:column>
    <h:column>
        <h:outputText value="#{access.title}" />
    </h:column>
</h:dataTable>
<h:form>

Could you please help me?

Upvotes: 1

Views: 1875

Answers (1)

BalusC
BalusC

Reputation: 1108642

<h:selectOneMenu id="orgList" value="# {requestAccessBean.currentOrg}">

This is not valid EL. You have a space between # and {. Remove it.

<h:selectOneMenu id="orgList" value="#{requestAccessBean.currentOrg}">

Upvotes: 2

Related Questions