2014-03-26 2 views
0

java의 논리 연산자로 작업하는 것이 혼란 스럽습니다. 필드 검증을 위해 struts 1을 사용하고 있습니다. (비어 있지 경우에도) 분야 '코드'비어 있지하고 필드 'newCode이'필드 '코드'의 오류 메시지가 나타납니다 비어있는 경우, 같은java의 논리 연산자 (Struts 1에서 유효성 검사 사용)

ActionErrors errors = new ActionErrors(); 

if(StringUtils.isBlank(getCode()) || StringUtils.isBlank(getNewCode())){ 
      errors.add("code", new ActionMessage("error.codeMode.required")); 
      errors.add("codeNew", new ActionMessage("error.codeMode.required")); 

     } 

: 여기 내 코드입니다 'newCode'필드가있는 것. 나는 연산자 OR의 조합을 피하는에 대한 몇 가지 해결책이 있는지 알고 싶어요 (참 || false)를

이 내가 찾고 있어요 무엇을 위해 :. (= TRUE 0 = 거짓 1)

0 || 0 => 0 
1 || 0 => 0 
0 || 1 => 0 
1 || 1 => 1 
+0

조건에 맞으면 (두 가지 모두) 두 메시지를 추가하십시오. 컴퓨터는 꽤 바보입니다. 그들은 마음을 읽지 않습니다. 따라서 "적절한 경우에만 첫 번째 메시지 추가"와 "적절한 경우 두 번째 메시지 추가"를 의미한다는 것을 알지 못합니다. 당신은 두 가지를 모두한다고 말하고, 두 가지를 모두 수행합니다. – ajb

+0

예, 전적으로 동의합니다. – Majda

답변

1

이 기술에 익숙하지 않지만
논리적 관점에서 볼 때 이것은 나에게 더 합리적입니다.

if(StringUtils.isBlank(getCode())){ 
    errors.add("code", new ActionMessage("error.codeMode.required")); 
} 

if(StringUtils.isBlank(getNewCode())){ 
    errors.add("codeNew", new ActionMessage("error.codeMode.required")); 
} 

내가 원하는 것이 맞는지 확실하지 않습니다. (단지 및 추가)

if(StringUtils.isBlank(getCode()) && StringUtils.isBlank(getNewCode())){   errors.add("code", new ActionMessage("error.codeMode.required"));   errors.add("codeNew", new ActionMessage("error.codeMode.required"));  } 

및 peter.petrov 등이 문제에 대한 두 번째 나 제안 :

if(StringUtils.isBlank(getCode())){ 
    errors.add("code", new ActionMessage("error.codeMode.required")); 
} 

if(StringUtils.isBlank(getNewCode())){ 
    errors.add("codeNew", new ActionMessage("error.codeMode.required")); 
} 
+0

예. 감사합니다.하지만 제가 할 수 있음을 알고 있습니다. 다른 해결책을 찾기를 원합니다. – Majda

0

나는 그것의 작품 totaly 논리적 아닌 경우에도 해결책을 발견

다른 사람이 나에게 도움이 될만한 해결책이 있다면.

0

"다른 해결책"이 없습니다. ||을 입력하면 한 필드 만 비어 있으면 두 오류가 모두 추가됩니다. &&을 입력하면 두 필드가 모두 emtpy 일 때 두 오류가 추가되지만 하나만 비어 있으면 아무 것도 추가되지 않습니다. 또한 원하는 것도 아닙니다.

유일한 해결책은 peter.petrov가 제안한 것입니다.

+0

예.하지만 'code'와 'codeNew'때문에 작동하고 있습니다. 각 필드는 서로 다른 페이지에 있습니다 (따라서 두 개의 오류 메시지가 추가 되어도 페이지에 하나만 표시됩니다). 그러나 더 나은 솔루션이 아니더라도 peter.petrov의 솔루션을 사용하는 것을 선호합니다. – Majda