2013-01-15 75 views
3

我想知道是否有人可以提供幫助。春天* {}領域在thymeleaf ajax瓷磚

我正在開發Spring/Webflow/Tiles/Thymeleaf項目。一切進展順利。我們有代表數據輸入表格的瓷磚,通常是這樣的:

<form th:object="${questionnaire}"> 
    .... 
    <select th:field="*{title}> 
     <option ..... 
    </select> 
    .... 
    <input th:field="*{fname}" /> 
    <input th:field="*{lastname}" /> 
    .... 
</form> 

這是行之有效的。但是現在我們試圖在表單中添加一些Ajax魔法。基本上這個想法是,當一個按鈕被按下時,它觸發一個webflow轉換,它將在一個tile中呈現它的響應。這一切都很好......期待片段拼貼的內容。這個想法是,新的片段將是一些額外的表單域。事情是這樣的:

<div tiles:fragment="moreDetails"> 
    .... 
    <input th:field="*{phone}" /> 
    <input th:field="*{email}" /> 
    .... 
</div> 

的一個Webflow和瓷磚部分工作,但是當thymeleaf試圖使瓷磚,它抱怨說,表單字段引用屬性與* {}語法,而不是封閉在一個表單標籤與th:對象

到目前爲止,我們只想出了兩種解決方法。我們可以在表單標籤中加入th:object對象,但這意味着我們在結果頁面中有一個嵌套表單:( )我們發現我們可以做的另一件事情是簡單地將輸入字段寫入框架中name屬性,而不是日:現場 兩個「解決方案」感覺不對勁

有誰知道,如果有更好的,更thymeleaf這樣的友好的方式

乾杯

彌敦道

回答

2

?我在百里酚論壇上發表了同樣的問題,作者丹尼爾也發表了同樣的問題thymeleaf的回答: http://forum.thymeleaf.org/Spring-fields-in-an-ajax-tile-td4025527.html

「日:場」實際上是一種宏觀的,給出了一個價值的「名稱」,「ID」和輸入的「價值」。現場直接,你可以指定「名稱」和「ID」爲一個固定值,然後在「日:值」所以,如果你不能次使用,如:

<input id="phone" name="phone" th:value="${questionnaire.phone}" /> 

的問候,丹尼爾。

基本上,我已經提到的兩個解決方法是ony的方式來實現這一點。不理想(恕我直言),但至少我們有一個答案。

+0

謝謝,它也適用於我 –