2013-10-26 58 views
0

我正嘗試創建一個評論頁面,其中包含一組可以回覆的變量註釋(通過o:tree佈置,感謝BalusC)。我通過p:inplace顯示h:inputTextArea,所以每頁有多個textinput區域,並帶有多個commandbutton回覆。我試圖將命令按鈕映射到來自特定文本輸入區域的單個後端變量,以便每次按下命令按鈕時都不處理每個文本輸入區域。多個h:inputTextarea到單個後端變量

編輯:代碼示例

<o:tree value="#{xPost.post.comments.treeModel}" var="comment" varNode="node"> 

    <o:treeNode> 
     <o:treeNodeItem> 
      <p:panel> 
       <h:outputText value="#{comment.commentText}" /> 
       <p:inplace label="Reply"> 
        <br/> 
        <p:editor value="#{post.newComment}" /> 
        <p:commandButton action="#{post.saveComment('#{comment.ID'})}" value="Comment" ajax="false" /> 
       </p:inplace> 
       <o:treeInsertChildren /> 
      </p:panel> 
     </o:treeNodeItem> 
    </o:treeNode> 
</o:tree> 

要添加到這一點,我使用Hibernate的驗證,這給我的知識,可以通過註釋只能驗證:

@NotBlank(消息=「請輸入「) @Length(min = 1,max = 10000,message =」註釋必須在1到10,000個字符之間。「) @SafeHtml(message =」Invalid Rich Text。「) private String newComment =」 「;

所以從上面的代碼,當我有2+ p:編輯器,每個編輯器正在處理和填充相同的後臺bean變量。如何強制commentButton只驗證特定的inputBox/p:editor並設置backing-bean變量。

謝謝您的幫助。

+0

一種方法是將''移動到''內部。 – BalusC

+0

我的天啊,它太簡單了,而且工作。謝謝BalusC。 –

+0

好的,我將其轉貼爲答案。 – BalusC

回答

1

只要給每個編輯自己的形式。換句話說,將<h:form><o:tree>之外移到<o:treeNodeItem>之內。這將最終使用各自的編輯器和按鈕呈現多個表單。

+0

我剛發現primefaces有一個名爲[Fragment](http://www.primefaces.org/showcase/ui/fragment.jsf)的組件,它基本上可以實現我在尋找的內容,但是您的解決方案在沒有組件的情況下工作。 –

0
  1. 您需要提供您的源細節的人,給你更多的幫助
  2. 在你的情況,我猜下面應該做的伎倆:

    <ui:repeat var="comment" ...> // or equivalent like o:tree 
        <h:inputText value="#{comment.message} .../> 
        <h:commandButton actionListener="#{bean.updateMessage}"> 
        <f:setPropertyActionListener from="#{comment}" to="#{bean.commentBeingProcessed}"/> 
        <!-- Or alternatively, you can set the comment object on to the command button 
         and receive it on the server side as event.getComponent().getAttribute("comment") 
         <f:attribute name="comment" value="#{comment}"/> 
        --> 
        </h:commandButton> 
    </ui:repeat> 
    

希望這有助於。

+0

謝謝您的回答,但我認爲我沒有正確解釋問題。我編輯了我的帖子以更好地反映我的問題。 –