필자는 프론트 엔드 개발자로서 jsp 뷰 레이어에서 자신을 발견하고 데이터 (모델)를 뷰로 푸시하는 꽤 많은 솔루션을 보았습니다. 최근에는 jsp로 데이터를 가져 오는 taglib 솔루션이 등장했습니다.이 솔루션은 좀 더 자연스럽고 합리적인 것 같습니다. 단일 페이지와 별도의 실체로 보는 감안할 때 문제MVC 대 Taglibs, 의견/대안?
첫째, MVC는 단 하나의 페이지가 매우 복잡 할 수 있습니다, 절대 의미가 가장 가능성이 다른에 사용되는 구성 요소/서비스를 재사용 페이지. 결과적으로 컨트롤러는 다소 복잡해집니다.
내 경험에 의하면 클라이언트는 기능을 이전하거나 다음 사이트의 "재 설계"에서 전체 사이트를 바꿀 수 있기 때문에 페이지도 변경할 수 있습니다. 이것은 대개 문자 그대로 모든 것을 다시 작성해야하는 지루한 리팩토링 프로젝트로 이어집니다.
일관성 문제가 있습니다. 한 페이지에서 데이터 세트를 ModelView에 "목록"으로 넣고 "목록"을 추상화하는 다른 페이지에는 ModelView에 "특정 목록"으로 넣습니다. 프로젝트 라이프 사이클 동안 일관성을 유지하는 것은 지루한 평범한 작업이되며 대개는 피할 수 있지만 이것은 순수한 MVC 솔루션에서 발생합니다.
솔루션?
최근에 내가 상속 한 프로젝트에서 데이터를 pageView로 가져 오는 두 가지 솔루션을 보았습니다. 첫 번째 방법은 jsp : include를 사용하여 jsp 페이지를 호출하고 다른 컨트롤러를 실행하는 것보다는 다소 추악합니다.
두 번째로 나는 우아한 것으로 판명되었는데, taglib을 사용하여 특정 데이터 세트를 pageView로 가져 왔습니다. taglib은 TLD 안에 문서화되어있어 사용하기가 즐거웠습니다. 갑자기 컨트롤러를 망칠 필요없이 여러 페이지에서 데이터를 재사용 할 수있었습니다.
그래서이 프로젝트에서 필자는 "재 설계"를 구현해야했고 모든 데이터를 가져 오는 솔루션으로 인해 작업이 훨씬 쉬워졌습니다. 그러나 데이터 삽입 (MVC)을 사용하는 지점에서는 엉덩이에 통증이있었습니다. 'm Java 개발자가 아닙니다.) 및 Java 개발자가 누구에게도 거의 도움이되지 않습니다.
또한 taglibs는 올바르게 쓰여질 수 있지만 데이터 주입 (MVC)을 사용하는 것은 지속적으로주의해야 할 어린이가 될 수 있습니다 (JSP 맨 위에).
태그 라이브러리 예제
이의 우리는 다음과 같은 태그 정의/구현과 services.tld 있다고 가정 해 봅시다.
- getEmployeeAddress
- getEmployees
<services:getEmployees filter="a">
<!-- loop, get addresses, otherwise if empty list, render nothing -->
</services:getEmployees>
이것은 나를합니다 (frontender이) 거의 모든 페이지 직원과 주소를 표시 할 수 있습니다 더 중요한 작업을위한 자바 디바이스를 해제합니다. 이 서비스는 pageView 컨트롤러에서 별도로 테스트 할 수 있습니다. pageView 컨트롤러는 훨씬 덜 복잡해지고 (예를 들어 인증 및 사이트 전반의 기능 만 처리하는 등) 삶은 (적어도 나에게는) 훨씬 더 재미있을 것입니다.
내 질문 실제로
여러 부분 :
1.) 내 추론 쓰레기가 만일 그렇다면, 왜, 어떤 관점에서? = P
2.) 더 좋은 대안이 있습니까? (예를 들어 타일도 사용했습니다.)
3) 위에서 언급 한 taglib 솔루션을 사용하고 있습니까? 귀하의 경험은 어떻습니까?
4. 자바 개발자의 관점에서 위의 taglib 솔루션의 비용/이점/위험은 무엇입니까?
MVC가 Java 개발자에게는 단순한 이유를 이해합니다.하지만 경험상 (sofar) jsp 계층으로 어려움을 겪고 있습니다. 때때로 각 페이지마다 별도의 API를 배워야 할 필요가 있습니다. 프론트 엔드 개발자로서, 나는 데이터가 페이지 로딩시 사용 가능한 모든 데이터를 가지고있는 Ajax와 모든 지글 지글 소리를 사용하여 자연스럽게 나타난다는 것을 인정한다 ...
아, 비즈니스 논리가 속한 곳에서 모두 자유롭게 나가십시오. – BGerrissen