这个问题是关于 Tapestry 4 (不是Tapestry 5)。 如果我尝试在循环中渲染表单组件并提交一个表单,验证会在两个表单中显示错误,因为tapestry只创建一个表单实例并重用它。似乎我需要为每个表单提供唯一的id,但我不知道如何。 以下是重现该问题的代码:
<block jwcid="formBlock@Block">
<form jwcid="@Form">
<input jwcid="@TextField" value="literal:" validators="validators:required" />
<input type="submit" />
</form>
</block>
<for jwcid="@Foreach" source="ognl:new int[]{1,2}">
<span jwcid="@RenderBlock" block="component:formBlock" />
</for>
答案 0 :(得分:0)
验证错误在浏览器中显示两次的原因是因为实际上您只有一个表单;你只是渲染两次。如果您希望每个表单都有单独的验证处理,那么您必须创建两个单独的@Form组件。