저는 비즈니스 로직을 처리하기위한 해당 EJB 클래스를 가진 다수의 JPA 엔티티 클래스가있는 첫 번째 Java EE 어플리케이션을 개발했습니다. 내가 한 일은 빈들 중 하나를 Stateless에서 SessionScoped로 변경했기 때문에 사용자가 일련의 양식 필드를 통해 작업 할 수있게하는 데 사용할 수 있습니다. 모든 양식 필드는 JSF 양식으로 렌더링됩니다.Java EE : Bean을 사용하여 비즈니스 로직에서 프리젠 테이션 로직을 분리
그러나 EJB에서 "submitStep1"및 "goBackToStep2"와 같은 메소드를 구현하는 것과 같이 분명히 잘못되었다고 생각하기 시작했습니다. 이 메소드는 JSF 페이지에서 다양한 태그의 렌더링 요소에 사용되는 표시기를 설정하므로 분명히 "표현 논리"입니다.
제 질문은 어떻게 코드를 다시 구성해야합니까? 나는 JSF 페이지의 프리젠 테이션 로직을 다루고 다른 모든 ejbs (그리고 확장자는 JPA 클래스)를 사용할 수있는 하나의 SessionScoped (또는 stateful?) 빈을 가져야한다고 생각하고있다. 이 빈은 내 응용 프로그램의 프레젠테이션 계층 수준에있을 것입니다. 즉, 비즈니스 로직 계층에 세션 범위 세션 빈이 필요하지 않음을 의미합니다.
이제이 모든 것이 나에게 의미가 있으며, 아마도 내가 할 일입니다. 그러나 내 질문에 대한 이유는 내 JSF xhtml 페이지에서 JSF EL 태그를 많이 사용하여 EJB 컨텐츠를 참조한다는 것입니다. 프레젠테이션 계층 수업을 작성할 때 조심해야 할 JPA 관련 함정이 있습니까?
제 질문은 꽤 모호하며 실제로 구체적인 예와 관련이 없습니다. 그리고 Stateful v Stateful vs Stateless Beans에 대한 많은 정보를 찾았지 만 의도 한 구조가 가장 좋은 정보를 원합니다.
가능한 [JSF 컨트롤러, 서비스 및 DAO] (https://stackoverflow.com/questions/30639785/jsf-controller-service-and-dao) 중복 가능 – Kukeltje