약 30 개의 변수가있는 액션 클래스가 있습니다. 이 필드에 대한 게터와 세터는 코드를 엉망으로 만들고 불필요한 줄을 추가합니다. private
필드를 모두 반영하여 Struts에 "표시"할 수있는 방법이 있습니까?Struts 2의 리플렉션
답변
나에게 잘못된 접근 방식처럼 들립니다.
getter와 setter는 Java의 개념 및 캡슐화에있어 매우 기본입니다. 작성자와 설정자가 롬복 (http://projectlombok.org/index.html)과 같은 프레임 워크를 사용하거나 다른 언어 (예 : Gradle)를 쓰는 것을 좋아하지 않는 경우.
대부분의 경우 - 자바 코드가이를 사용하기 때문에 코드를 엉망으로 만든다는 인식이 약간 잘못되었습니다. 좋은 IDE가 당신을 방해하지 않도록 도와야합니다.
아, Reflection은 엄청난 성능 오버 헤드를 추가하며 개인 회원에 대한 액세스를 완전히 차단하지 않습니다.
OGNL이 작동하려면 실제로 게터와 설정자가 필요하지 않습니다. 그러나 그렇게하지 마십시오.
큰 클래스의 "오버 헤드"가 염려되는 경우 뷰 상태를 캡슐화하고 해당 객체 만 표시하는 객체를 만듭니다. ModelDriven
인터페이스를 통해이 작업을 수행 할 수도 있습니다. 일부주의 사항이 적용됩니다.
게터와 세터는 Java 코스와 동등합니다. 그것에 익숙해. 간단한 getXxx
/setXxx
방법을 자동으로 접는 IDE를 사용하십시오. 발표자 패턴을 사용하여 뷰 상태를 캡슐화하고이를 웹과 비즈니스 도메인 객체 간의 변환 레이어로 사용하십시오.
엔티티가 변경되지 않으며 ModelDriven 인터페이스가 작동하지 않습니다. 하지만 DTO 객체를 작성할 수 있습니다. 좋은 접근 방법이 될까요? –
어디에서이 기능을 사용 하시겠습니까? 프리젠 테이션 레이어 (스크린)에서? –
예 @Buhake Sindi. Struts는 getter와 setter를 통해서만 변수에 액세스 할 수 있지만, 좋지는 않습니다. –
@VladMatvei Java Bean에서 getter 및 setter를 사용하는 것이 좋습니다. 그러나 질문은 추가 서수 +1입니다. –