2013-01-15 49 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

谢谢,它也适用于我 –