2016-05-24 58 views
-1

我試圖從selectCheckboxMenu中獲取選定的值,但總是選擇列表爲空。這是我的jsf格式:primefaces selectCheckboxMenu空選定列表

<h:form id="form"> 
          <p:dataTable id="singleDT" var="user" value="#{roleBean.users}" 
           rowKey="#{roleBean.users}" rows="12" paginator="true" 
           rowsPerPageTemplate="12,15,22" paginatorPosition="bottom" 
           emptyMessage="Aucun compte présent." reflow="true" 
           editable="false" selectionMode="single"> 

           <p:column headerText="Login" filterBy="#{user.username}"> 
            <h:outputText value="#{user.username}" /> 
           </p:column> 

           <p:column headerText="Nom" filterBy="#{user.lastname}"> 
            <h:outputText value="#{user.lastname}" /> 
           </p:column> 

           <p:column headerText="Prénom" filterBy="#{user.firstName}"> 
            <h:outputText value="#{user.firstName}" /> 
           </p:column> 

           <p:column headerText="Email" filterBy="#{user.emal}"> 
            <h:outputText value="#{user.emal}" /> 
           </p:column> 

           <p:column headerText="Affécter Roles"> 


            <p:selectCheckboxMenu id="menu" value="#{roleBean.rolesselected}" 
             label="Roles" 
             filter="false" filterMatchMode="startsWith" 
             panelStyle="width:135px" converter="#{roleconvertor}" immediate="true" > 
             <f:selectItems value="#{roleBean.roles}" var="n" 
              itemValue="#{n}" itemLabel="#{n.description}" 
              itemDescription="#{n.rolename}" /> 

            </p:selectCheckboxMenu> 



           </p:column> 
           <p:column width="90"> 
            <p:commandButton styleClass="ui-yelbutton" immediate="true" process="@form" value="Valider" 
             title="Remove" 
             ajax="true" action="#{roleBean.addrole(user)}" /> 
           </p:column> 

          </p:dataTable> 

         </h:form> 

這裏是managedBean相關的。當我運行jsf頁面時,顯示值的列表,我可以檢查它。也TNE轉換器是工作,但是當我嘗試測試大小selectedrole的,它總是0

public class RoleBean implements Serializable { 
@Autowired 
UserCatalogueService userservice; 
@Autowired 
Roleservice roleservice; 
List< Role> roles; 

List<UserCatalogue> users ; 
private static final long serialVersionUID = 1L; 

String notification; 

private List<Role> rolesselected = new ArrayList<Role>(); 



@PostConstruct 
public void init() { 

    roles=roleservice.findAll(); 

} 

public List<Role> getRolesselected() { 
    return rolesselected; 
} 



public void setRolesselected(List<Role> rolesselected) { 
    this.rolesselected = rolesselected; 
} 



public List<UserCatalogue> getUsers() { 
    List<UserCatalogue> users= userservice.findAll(); 
    List<UserCatalogue> users1= userservice.findAll(); 
    users1.clear(); 
    for(int i=0; i< users.size(); i++) 
    { 
     if(users.get(i).getRoles().size()==0) 
     { 
      System.out.println(users.get(i).getFirstName()+ "est un nouvel utilisateur"); 
      //users.remove(i); 
      users1.add(users.get(i)); 
     } 
    } 

    return users1; 
} 



public String getNotification() { 
    notification=getUsers().size()+" Alerts"; 
    return notification; 
} 

public void setNotification(String notification) { 
    this.notification = notification; 
} 


public void setUsers(List<UserCatalogue> users) { 
    this.users = users; 
} 

public List<Role> getRoles() { 
    return roleservice.findAll(); 
} 
public void setRoles(List<Role> roles) { 
    this.roles = roles; 
} 






public void addrole(UserCatalogue user) 
{ 


     System.out.println("the size of list is "+rolesselected.size()); 


} 

}

回答

-2

嘗試使用[]

List改變 rolesselectedarray
相關問題