2012-07-06 57 views

回答

1

有點難以分辨你在問什麼,但是如果你想問:當我點擊一個按鈕時,我想讓按鈕調用一個支持java bean的方法,並訪問輸入文本字段的值ADF Faces頁面,答案是肯定的。 您需要在輸入文本字段上設置Binding屬性並向該按鈕添加一個方法調用。使用按鈕的ActionListener屬性,並使用actionlistener方法指定或創建一個支持bean。然後爲輸入文本字段設置綁定屬性。支持bean應該具有文本字段的get/set方法,您可以使用它們來獲取對文本字段的引用並調用get/setValue()方法。

+0

http://stackoverflow.com/questions/11100258/how-to-get-any-value-from-any-text-box -using-oracle-adf-through-button-click ..i按照這個詢問 – giulius 2012-07-06 16:13:43

+0

更容易設置屬性檢查器中文本字段的綁定屬性,然後它將會將一個對象引用和訪問器添加到backing bean。 – Joe 2012-07-06 17:11:01

+0

我不同意。應該在文本字段上使用'value'屬性而不是'binding'來指定託管bean中的字段,其中應該存儲輸入的值。 – dragn 2012-07-23 09:26:56

5

1.創建一個託管bean。 2.define你的方法使用此代碼::從按鈕屬性窗口

FacesContext facesContext = FacesContext.getCurrentInstance(); 
    UIViewRoot root = facesContext.getViewRoot(); 
    RichInputText inputText = (RichInputText)root.findComponent("it1"); 
    String val=inputText.getValue(); 

where it1 is id for your input text 

3.select按鈕的動作偵聽器。 4.call您的託管bean和方法

3

指定的一個inputText的屬性value用EL參照場託管bean與瀏覽或更高的範圍(如value="#{viewScope.Bean.field}"),在豆你將有:

private String field; 
public String getField(){ 
    return field; 
}; 
public void setField(String field){ 
    this.field = field; 
}; 

然後在commandButton上指定actionListener,同時引用同一個bean中的處理程序方法:actionListener="#{viewScope.Bean.handleButton}"。訪問field在該方法中:

public void handleButton(ActionEvent event){ 
    System.out.println('Input field content: ' + getField()); 
}; 
+0

好點,這種方法也適用。這取決於他想做什麼。如果他只想要價值,這就好了。如果他希望能夠以其他方式操作inputTextField,那麼他需要綁定。順便說一句,我建議調用你自己的訪問器方法,而不是直接引用該屬性。 – Joe 2012-07-24 16:20:14

+0

同意。我想我們應該鼓勵好程序員的禮儀,我會更新我的答案... :) – dragn 2012-07-25 07:40:26

+0

- 這。我最喜歡SO的一件事。 – Joe 2012-07-25 17:18:08

0

理解)

<af:panelFormLayout id="pfl1"> 
     <f:facet name="footer"> 
     <af:commandButton text="отправить" id="cb1" 
          actionListener="#{inBean.doSave}" partialSubmit="true"/> 
     </f:facet> 
     <af:inputText label="Ввести данные:" value="#{inBean.myParam}" id="it1"/> 
     <af:outputText value="#{inBean.myParam}" id="ot1" partialTriggers="cb1"/> 
    </af:panelFormLayout> 

    public void doSave(ActionEvent actionEvent) { 
    // ActionResponse response = (ActionResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse(); 
    // response.setRenderParameter("myParam", myParam); 
    FacesContext context = FacesContext.getCurrentInstance(); 
    UIViewRoot root = context.getViewRoot(); 
    RichInputText inputText = (RichInputText) root.findComponent("it1"); 
    myParam = (String)inputText.getValue(); 
}