문제

Struts 1.2.4를 사용 하여이 거대한 레거시 Java 웹 앱을 물려 받았습니다. ActionForms에 관한 구체적인 질문이 있습니다. 그들 중 일부는 문자열 속성 (숫자의 경우에도) 만 가지고 있으며, 일부는 적절한 유형 (정수, 날짜, 문자열 등)을 사용합니다. 여기서 모범 사례는 무엇입니까?

또한 속성이 정수 유형 인 경우 사용자가 입력 한 값이 정수 값이 아닌 경우, Struts는 이것을 조용히 삼키고 속성을 설정하지 않습니다. 이게 무슨 일이야?

도움이 되었습니까?

해결책

Struts 1.2x의 경우 사용자가 HTML 양식에서 값을 입력하거나 선택하는 속성과 Struts HTML 태그에 의해 ActionForm 인스턴스에 자동으로 채워진 속성은 문자열 또는 부울이어야합니다. 그러나 ActionForm이 응용 프로그램 날짜의보다 의미있는 유형으로 속성을 반환하는 Getter 메소드를 가질 수없는 이유는 없습니다.

다른 팁

유효성 검사를 직접 수행하려면 직접 확인하거나 1.2보다 후반에 Struts에서 리팩토링 된 Struts Validator 기능을 사용하려면 정확히 인용 한 이유에 따라 문자열 속성이 필요합니다. , 그들 ~ 해야 하다 숫자 또는 "전혀 없음" - 그렇지 않으면 : 정수 속성에 "문자 그대로"얼마나 많이 저장 했습니까?

클라이언트 측 유효성 검사 (예 : JavaScript)는 여전히 작동하지만 이에 의존하고 싶지는 않습니다.

유효하지 않은 번호를 입력하면 사용자가 빈 필드를 제시하는 경우 괜찮습니다. 날짜, 정수, 모든 비판에 값을 저장할 수 있습니다. 오류 메시지와 함께 원래 값을 제시하려면 문자열 속성이 필요합니다.

이것은 수동으로 변환하는 데 필요한 가격이 있습니다. Struts 1.2가 꽤 오래되었으므로 응용 프로그램 인프라를 더 현대적인 기술로 점차적으로 교체하고 두 가지 기술 (Old & The New)에서 동시에 동시에 작동하는 것에 대해 생각하고 싶을 수도 있습니다. 충분히) 떨어질 정도로.

NB- 또한 숫자로 수락하려는 값에 대해 더 많은 제어를받습니다. 나는 아직도 당신이 당신의 카드에서 3e2 유로를 인출하고 싶을 때 예상 결과가 무엇인지 내 관리자에게 물었던 오래된 스트럿 신용 카드 뱅킹 신청을 기억합니다. 그들은 300 명 (스트럿이 변환됨)이라고 말하지 않았지만 오류를 선택했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top