4

내가 작업하고있는 웹 프로젝트의 복잡성이 증가함에 따라 MVC 구조를 포함 할 필요가 점점 더 커지고 있습니다. 내 모델 클래스는 잘 정의되어 있지만 뷰와 컨트롤러 코드는 서로 뭉친 경향이 있습니다. 나는 사이트에서 꽤 무거운 AJAX (RichFaces jsFunctions 대부분)를 사용하여 약간 더 복잡한 작업을 수행했습니다.JSF2 관리 Bean에서 MVC를 구현하는 모범 사례

누군가 JSF2를 사용하여 MVC를 구현하는 좋은 전략을 찾았습니까? 프로젝트에 다른 프레임 워크 (예 : Spring MVC)를 소개하고 싶지 않습니다. 무거운 아약스있는 페이지의 경우 아직

  • 하고

    내가 시작하지 않은 지금까지 일부 아이디어는,,,, 선택된 탭, 선택한 항목을 기억하는 데이터의 필터링 된 목록을 제공하는 '보기'콩이 등등 ...

  • 모델 변경과 같은 작업을 처리하는 '컨트롤러'빈이 있습니다.
  • JSF 페이지와 컨트롤러간에 이동하는 '명령'빈이 있습니다. jsFunction이 명령 빈을 매개 변수로 채우고 command.execute()을 호출하면 명령 빈이 제어기 빈에서 올바른 메소드를 호출하여 조치를 수행합니다. 'command'빈에는 완료시 호출 할 자바 스크립트가 포함될 수 있습니다. 또한 페이지의 영역을 다시 렌더링하도록 지정할 수 있습니다.

의견이 있으십니까?

편집 나는 꽤 자주 볼 수있는 모든을하는 경향이 관리 콩은 무엇

: 등, 필터링 된 목록을 얻을 모델을 업데이트, 사용자의 선택을 추적 ...

우리는 현재 JSF 1.2를 사용하고 있으므로 액션/액션 리스너를 매개 변수와 함께 사용할 수 없습니다. 예를 들어, 우리의 관리되는 bean은 과 같은 변수를 가지고 있는데, 그 목적은 updateFilteredItemsBasedOnDate()에 대한 호출에서 선택한 날짜를 백엔드에 공급하는 것입니다. 여분의 변수가 일시적인 것이므로 사라질 수 있다면 좋을 것입니다. 매개 변수가있는 JSF 2의 EL이 도움이되지만 대체 솔루션을 사용할 수 있는지 궁금합니다.

MVC를 관리 빈에 적용 할 수있는 방법이 있는지, 또는 모든 것을하려고하는 큰 빈으로 끝나지 않도록 우려를 분리하는 방법이 있는지 궁금합니다.

+0

"MVC와 JSF의 관계는 무엇입니까?" JSF 자체는 이미 MVC (2) 프레임 워크입니다. 관리 빈은 M, facelets 페이지는 V, 내장 FacesServlet은 C.입니다. "JSF에서 관리 빈을 어떻게 디자인 할 수 있습니까?"라는 질문이 아닙니다. – BalusC

+0

좋은 지적. 질문 제목을 업데이트하고 몇 가지 의견을 추가했습니다. –

+0

다른 의견이 있으십니까? –

답변

0

체크 아웃이

http://www.allapplabs.com/j2ee_design_patterns/j2ee_design_patterns.htm

을 확인 JSF의 MVC JSF 자체가 더 나은 구현에서 MVC를 제공하기 때문에. MVC 구현의 더 나은 방법이 무엇을 의미하는지 정확히 모르겠습니다.

Balusc가 의견에서 말했듯이 JSF 자체는 애플리케이션에 충분한 MVC를 제공합니다. 관심사를 구분하려면 비즈니스 로직을 Helper 클래스로 분리하고 Bean에 프리젠 테이션 로직 만 작성하는 것이 좋습니다.

비즈니스 로직 용으로 Bean을 사용할 것인지 또는 관리 Bean과 분리해야하는지에 대한 논쟁이 있습니다. 그것은 모두 응용 프로그램과 도메인에 따라 다릅니다.

덕분에, 크리슈나

3

디자인 패턴을 찾으십니까? 당신이 MVC를 찾고 있다면 다음 BalusC의 대답은 충분하다, 다른 사람은 또한 오히려 더를 사용하는 방법에 보면 당신은 콩을 관리하는 더 좋은 방법을 볼 수 있습니다 this

+0

멋진 링크, 감사합니다 –

+0

환영합니다 !!!!!!!!!! – mvg

1

글쎄, 어쩌면 당신이 필요 계층화 된 아키텍처입니다. 지금까지 MVC 아키텍처, 더 많은 우려가 있습니다. 예를 들어 View, Business Logic 및 DataAccess 레이어에서 아키 텍처를 계층화하여 각 계층의 공통 디자인 및 엔터프라이즈 패턴을 구현할 수 있습니다.

당신은 MVC를 구현 중 오순절 일을 시작했지만, 좋은 방법은 당신이 잘 조직과 분리 된 코드를 얻을 수있는이 방법으로 수에 "의 분리"

을 가지고있다 h've.

나는이 간단한 설명이 유용했다.

감사합니다.

관련 문제