2011-06-28 65 views
0

我有一個JSF-2.0對話框,它有三個p:inputText字段,這些字段的內容我想讓p:commandButton按下。我已經使用了F嘗試:屬性,但無論是通過什麼我放到「值」 OR我得到空,如果我嘗試類似的確切文本:什麼是發現當p:commandButton被按下時,需要將p:inputText的值傳遞給bean

<h:form id="form"> 
      <p:dataTable var="config" value="#{configBean.configList}" selection="#{configBean.selectedConfigs}"> 
       <p:column selectionMode="multiple">    
        <f:facet name="header"> 
          Delete? 
        </f:facet>      
       </p:column> 



      <p:column headerText="Name"> 
       <h:outputText value="#{config.name}" /> 
      </p:column> 

      <p:column headerText="Key"> 
       <h:outputText value="#{config.key}" /> 
      </p:column> 

      <p:column headerText="Value"> 
       <h:outputText value="#{config.value}" /> 
      </p:column> 
     </p:dataTable> 

     <p:commandButton value="Add Row" 
         oncomplete="addRowDialog.show()"/> 
     <p:commandButton value="Delete" 
         action="#{configBean.deleteSelectedConfigs}"/> 

     <p:dialog header="Add Row" widgetVar="addRowDialog" id="dialog" 
        width="250" height="300" showEffect="explode" hideEffect="explode"> 

      <h:outputLabel for="name2" value="Name:"/> 
      <p:inputText id="name2" name="name2" required="true"/> 

      <p:commandButton value="Submit" actionListener="#{configBean.addNewConfigProperty}" onclick="addRowDialog.hide()" update="config">    
      <f:attribute name="name1" value="#{requestScope.name2}"/> 
      </p:commandButton> 
     </p:dialog>        
    </h:form> 

是可以通過的值在inputText這種方式?

回答

2

使用的p:inputTextvalue屬性綁定它的內容到後臺bean值:

<p:inputText id="name2" value="#{myBean.myTextField}" required="true"/> 

而且在你的bean:

String myTextField; 
// add getter and setter 

如果你想給的inputText綁定到不同的數據類型你需要一個converter

+0

這是我嘗試的第一個方法,但值之間的價值觀不斷丟失,即使與@ViewScoped設置這就是爲什麼我想要使用屬性,因此當按鈕被點擊時,所有的數據存在ActionEvent。 – Ryland

+0

@Ryland:如果切換到不同的視圖,@ViewScoped bean將被銷燬並且您的值會丟失(這是預期的行爲)。如果你想保留這個值,你必須使用@SessionScoped或者用存儲在數據庫中的值預填充ViewScoped bean(如果這是你正在做的)。 –

+0

頁面顯示帶有「添加行」命令按鈕的表格,然後啓動一個p:對話框,在其中輸入信息。 p:對話框有一個「提交」按鈕,然後調用該bean的後備方法。如果我做了「value =」,並在各個setter中放置一個斷點,它會被觸發,但數據不會被存儲在每個「set」調用之間(返回null)。這就是爲什麼我轉而嘗試使用屬性。 – Ryland