2014-01-09 7 views
1

저장 버튼과 제출 버튼이있는 큰 양식의 webMethods CAF 작업이 있습니다. 양식의 많은 요소에 유효성이 있습니다. 사용자는 저장을 클릭하여 양식을 백엔드 모델에 제출해야 유효성 검사를 실행하지 않고 작업 데이터로 저장할 수 있습니다. 제출을 누르면 검증이 시작됩니다.저장 버튼이있는 작업이 유효성 검사 오류를 던졌습니다

이 작업을 수행하려면 어떻게 페이지를 구성해야합니까? 그것은 정상적인 요구 사항입니다, 그리고 나는 붙어 있어요!

+0

귀하의 유효성 확인은 어디에서 구현 되었습니까? –

+0

이것은 webMethods Designer에서 구성한 서버 측 유효성 검사입니다. 필수 = true가 주입니다. 프로세스 검증 단계에서 내장 된 유효성 검사기를 실행한다고 생각합니다. –

+0

'required = "true"'로 수행 할 수 있습니까? –

답변

1

별로 재미 있지 않습니다.

  1. 저장 버튼에 멋진 ID를 지정하십시오. 말해봐, saveButton
  2. 부울을 반환하는 Java 코드에서 getter를 만듭니다. 저장에서 제외해야합니다 모든 분야에서

    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. 당신의 validationRequired 게터에 검증 -> 필수 속성을 결합 : 버튼의 ID가 제출 된 분야 중 하나입니다 경우 내부 true, 그렇지 않은 경우는 false 반환 .

그게 전부 야! 화면의 많은 필드가 매우 지루하지만 작동합니다.

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; 
} 
-2

제공되는 접근 방식은 양식에 문자열 유형 필드 만 포함 된 경우에만 작동합니다. integer, float, data-time과 같은 다른 데이터 유형이 UI 필드에 매핑되고 변환이 사용되면 잘못된 데이터가이 필드에 입력되면 실패 할 수 있습니다.

+0

이것은 _answer_가 아닌 _comment_이어야합니다. 어쨌든. 동의하지만 클라이언트 측 유효성 검사가 유효하면 정상 작동합니다. 전환 등을 처리하는 방법을 포함하도록 답변을 확장 할 수 있습니다. –

+0

이 글은 댓글이지만 메모 작성에는 평판이 필요하다는 의견이 있습니다. 내가 이것을했을 때 나는 그 명성을 얻지 못했다. –