我有一个webMethods CAF任务,它有一个带有保存按钮和提交按钮的大表单。表单上的许多元素都有验证。用户需要能够点击保存并将表单提交给后端模型,以便将其保存为任务数据,而无需激活验证。点击提交应该激活验证。
如何配置页面来执行此操作。这是一个正常的要求,我被困住了!
答案 0 :(得分:1)
这不是很有趣。
在Java代码中创建一个返回布尔值的getter。在其中,如果按钮的ID是提交的字段之一,则返回true,否则返回false:
private boolean validationRequired() {
return mapValueEndsWith((Map<String, String>)getRequestParam(),
new String[] {
"saveButton", // Your save button
"anotherButton", // Perhaps another button also shouldn't validate
"myForm:aThirdButton" // perhaps you want to be specific to a form
});
}
在每个应该需要的字段中,除了保存外,将Validation-&gt; required属性绑定到validationRequired getter。
就是这样!屏幕上有很多字段非常繁琐,但它确实有效。
P.S。什么是mapValueEndswith?只是一个工具;为了紧凑而删除了空格:
private boolean mapValueEndsWith(Map<String, String> haystack, String[] needles) {
for(String needle : needles) if(mapValueEndsWith(haystack, needle)) return true;
return false;
}
private boolean mapValueEndsWith(Map<String, String> haystack, String needle) {
for(String value : haystack.values()) if(value.endsWith(needle)) return true;
return false;
}
答案 1 :(得分:-2)
正如我所看到的那样,只有表单只包含字符串类型字段时才有效。如果有任何其他数据类型(如整数,浮点数,数据时间)映射到UI字段并使用转换,那么如果在这些字段中输入错误数据,则可能会失败。