【发布时间】:2017-05-26 08:24:23
【问题描述】:
是否可以获取 Tapestry 表单组件中所有错误的字段,或者是否可以覆盖默认的 Tapestry 表单验证跟踪器?
【问题讨论】:
是否可以获取 Tapestry 表单组件中所有错误的字段,或者是否可以覆盖默认的 Tapestry 表单验证跟踪器?
【问题讨论】:
“获取所有字段”是什么意思?
如果要显示所有字段,它们会出现验证错误 所以像这样将“错误”组件插入到您的表单中:
<t:form>
<t:errors/>
<t:label for="search"/>
<t:textfield t:id="search"/>
<input type="submit" value="Search"/>
</t:form>
</body>
看看api docs
【讨论】:
如果您想在各个字段旁边显示错误,您可以通过自定义验证来实现
在java端:
@InjectComponent
private Form myForm;
@InjectComponent
private TextField myTextField;
@Property
private String textFieldValue;
public void onValidateFromMyForm()
{
if (myConditionBasedOnTextFieldValue)
{
myForm.recordError(myTextField, "Error message");
}
}
在 .tml 方面
<t:Form t:id="myForm">
<t:TextField t:id="myTextField" value="textFieldValue"/>
<t:LinkSubmit>Submit</t:LinkSubmit>
</t:Form>
提交表单后,java 端的 textFieldValue 将在调用 validate 事件之前填充文本字段的内容。
表单不会成功,因为它已经记录了错误,并且由于我们针对 myTextField 记录了错误,因此错误将呈现在文本字段本身旁边,而不是在
希望这能引导您朝着正确的方向前进
【讨论】: