2010-08-18 5 views
0

J'essaie d'utiliser rich:suggestionbox. Je suis allé à travers le tutoriel fourni par les Richfaces. L'important est que j'utilise Richfaces 3.1.4 JAR. Dans la boîte à suggestions, j'essaie simplement de renseigner certaines données par défaut au démarrage, mais la boîte à suggestions ne s'affiche pas du tout. Lorsque je tente de voir la console d'erreur dans Firefox, le message d'erreur suivant apparaît:riche: suggestionbox erreur - this.element est nul

Error: this.element is null Source File: http://localhost:9080/sample/a4j_3_1_4.GAorg/richfaces/renderkit/html/scripts/suggestionbox.js.faces Line: 2

JSF CODE

<a4j:region selfRendered="true" id="region1"> 
    <h:inputText id="fx" /> 
    <rich:suggestionbox width="50" height="50" for="fx" nothingLabel="HI" 
     suggestionAction="#{basic.inputData}" fetchValue="#{basic.selectedData}" 
     var="result" id="suggestion"> 
     <h:column> 
      <h:outputText value="#{result.value}" /> 
     </h:column> 
    </rich:suggestionbox> 
    <h:commandButton id="submit" value="show data" 
     action="#{basic.submit}"></h:commandButton> 
</a4j:region> 

GERE BEAN

enter code here 
    private List<SelectedList> inputData; // Setter 
    private String selectedData; // Getter and Setter 

    public List<SelectedList> getInputData() {   //Getter 
    if(inputData!=null){ 
     inputData = new ArrayList<SelectedList>(); 
     inputData.add(new SelectedList("1","equal")); 
     inputData.add(new SelectedList("2","not equal")); 
     inputData.add(new SelectedList("3","greater")); 
     inputData.add(new SelectedList("4","lesser")); 
    } 
    return inputData; 
} 

Veuillez aider, s'il vous plaît.

+0

version JSF utilisez-vous? – Dejell

+0

J'utilise JSF 1.1. – Hariharbalaji

Répondre

0

ÉDITÉ: après avoir changé votre code:

changer la méthode inputData comme ceci:

(Bien sûr, je crois que vous devez régler le donnéesEntrée selon la chaîne .. le suggère)

public List<Capital> inputData(Object suggest) { 
     String pref = (String)suggest; 
     //if (suggest...) - add this! to complete according the word 
     ArrayList<SelectedList> inputData = new ArrayList<SelectedList>(); 

     inputData.add(new SelectedList("1","equal")); 
     inputData.add(new SelectedList("2","not equal")); 
     inputData.add(new SelectedList("3","greater")); 
     inputData.add(new SelectedList("4","lesser")); 

     return inputData; 
    } 

et pour:

fetchValue="#{basic.selectedData}" 

Vous devez le modifier à: fetchValue="#{result.value}" où la valeur est a une méthode getter dans SelectedList.

Si vous manque, il ne sera pas affiché ..

Voir un exemple de Suggestion Box Demo

+0

Désolé, il s'agissait d'une faute de frappe à la place de inputData. J'ai été tapé dans le code JSF. J'ai le getter et la méthode de setter générés par défaut, c'est la raison pour laquelle j'ai mentionné Getter et Setter dans le code lui-même pour réduire l'espace. – Hariharbalaji

+0

Dans suggestionAction vous avez besoin d'une action pour remplir l'élément sélectionné. Vous n'avez pas besoin de getter et setter pour cela. – Dejell

+0

J'ai édité ma réponse maintenant. – Dejell

Questions connexes