2010-08-18 37 views
0

我正在嘗試使用rich:suggestionbox。我瀏覽了Richfaces提供的教程。重要的是我正在使用Richfaces 3.1.4 JAR。在建議框中,我只是試圖在開始時填充一些默認數據,但建議框根本沒有渲染。當我嘗試看看在Firefox錯誤控制檯,顯示以下錯誤消息:rich:suggestionbox錯誤 - 此元素爲空

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> 

Managed 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; 
} 

請幫助,如果你願意。

+0

的例子嗎? – Dejell 2010-08-18 14:52:57

+0

我正在使用JSF 1.1。 – Hariharbalaji 2010-08-18 15:14:17

回答

0

EDITED

變化的方法inputData這樣的:改變你的代碼後,

(當然,我相信,你需要根據提示的字符串來調整inputdata ..)

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; 
    } 

和:

fetchValue="#{basic.selectedData}" 

您需要將其更改爲:fetchValue="#{result.value}"其中值在SelectedList中有一個獲取方法。

如果缺少它,它不會顯示..

查看哪些JSF版本您使用的Suggestion Box Demo

+0

對不起,這是一個輸入錯誤而不是輸入數據,我輸入爲填充在JSF代碼中。我有getter和setter方法默認生成,這就是我在代碼中提到Getter和Setter以減少空間的原因。 – Hariharbalaji 2010-08-18 15:26:42

+0

在建議行動中,您需要採取措施來填充選定的項目。 你不需要getter和setter。 – Dejell 2010-08-18 15:29:27

+0

我現在編輯了我的答案。 – Dejell 2010-08-18 15:33:56