“保存”按钮任务会引发验证错误

时间:2014-01-09 13:02:37

标签: jsf webmethods webmethods-caf

我有一个webMethods CAF任务,它有一个带有保存按钮和提交按钮的大表单。表单上的许多元素都有验证。用户需要能够点击保存并将表单提交给后端模型,以便将其保存为任务数据,而无需激活验证。点击提交应该激活验证。

如何配置页面来执行此操作。这是一个正常的要求,我被困住了!

2 个答案:

答案 0 :(得分:1)

这不是很有趣。

  1. 为您的保存按钮添加一个不错的ID。说,saveButton
  2. 在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
            });
    }
    
  3. 在每个应该需要的字段中,除了保存外,将Validation-&gt; required属性绑定到validationRequired getter。

  4. 就是这样!屏幕上有很多字段非常繁琐,但它确实有效。

    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字段并使用转换,那么如果在这些字段中输入错误数据,则可能会失败。