这个问题是关于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>