Tapestry 5 ByPass验证

时间:2011-09-09 04:03:59

标签: java validation tapestry

我想问一下tapestry 5中的旁路验证

在我的表单中,我有一些需要验证的字段。我有两个提交按钮。如果我点击为保存对象做一些验证。另一方不得通过Ajax(使用区域)验证表单或绕过添加到详细对象的验证

感谢B4

2 个答案:

答案 0 :(得分:2)

虽然我没有通过设置t:clientvalidation="false"上的t:form来使用客户端验证,但我相信您可以使用提交按钮旁边的取消按钮绕过它,如下所示:

<input t:type="submit" t:mode="cancel" value="Cancel"  t:id="cancel" />
<input t:type="submit" value="Submit"  t:id="submit" />

查看component reference for submit。它声明“SubmitMode#CANCEL表示应省略客户端验证(尽管仍然会发生服务器端验证)。”所以你仍然需要停止服务器端验证。你可以这样做:

private boolean cancelCalled;

void onSelectedFromSubmit() {
     cancelCalled = false;
}     

void onSelectedFromCancel() {
     cancelCalled = true;
}

@OnEvent(component = "theIdOfYourForm", value = EventConstants.VALIDATE)
private void validateForm() {
    if(cancelCalled) {
        newContactForm.clearErrors();
    }
}

答案 1 :(得分:0)

尝试在客户端使用javascript禁用输入字段。这个对我有用。正如joostschouten所说,您仍然需要绕过服务器端验证。