<s:selectItems and noSelectionLabel
hager Sep 11, 2007 1:32 PMhello,
I have some problems with the noSelectionLabel attribute,
I want to make a research by collaborator's type.
collaborateur's type is a String
for example : when i choose the type "interne" from the selectOneMenu, i obtain all collaborators which have intern type.
my problem is, when i put the noSelectionLabel attribute, the research is wrong, but when i remove it, i have the appropriate collaborators.
but i have to use the noSelectionLabel attribute.
in page.xhtml
<ui:define name="label">#{msgCollaborateur.type}</ui:define> <h:selectOneMenu id="selectOneType" value="#{collaborateurList.collaborateur.type}"> <s:selectItems value="#{collaborateurHome.typeCollaborateurKeys}" var="typeCollaborateurIterator" label="#{collaborateurHome.typeCollaborateurMap[typeCollaborateurIterator]}" id="selectType" noSelectionLabel="all Types"/> </h:selectOneMenu>
in collaborateurHome.java:
package com.fitnetapplication.resources.model; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import org.jboss.seam.framework.EntityQuery; import java.util.List; import java.util.Arrays; @Name("collaborateurList") public class CollaborateurList extends EntityQuery { @In(required=false) Societe currentSociete; private static final String[] RESTRICTIONS = { "lower(collaborateur.type) like concat(lower(#{collaborateurList.collaborateur.type}),'%')", "lower(collaborateur.nom) like concat(lower(#{collaborateurList.collaborateur.nom}),'%')", "lower(collaborateur.prenom1) like concat(lower(#{collaborateurList.collaborateur.prenom1}),'%')", }; private Collaborateur collaborateur = new Collaborateur(); @Override public String getEjbql() { if(currentSociete != null){ return "select collaborateur from Collaborateur collaborateur where collaborateur.societe = #{currentSociete}"; } return "select collaborateur from Collaborateur collaborateur"; } @Override public Integer getMaxResults() { return 25; } public Collaborateur getCollaborateur() { return collaborateur; } @Override public List<String> getRestrictions() { return Arrays.asList(RESTRICTIONS); } @Override public List<Collaborateur> getResultList() { List<Collaborateur> a=super.getResultList(); System.out.println("EJBQL = " + super.getRenderedEjbql()); return a; } }
thanks.