이 강하게 통합된 프레젠테이션 층 도구 이외의 다른 JSF/JSP for Java EE?

StackOverflow https://stackoverflow.com/questions/296325

문제

나는 가르치는 Java EE 대학에서 이런 질문에 학생들이 물었다.나는 말했다,"아니오"그러나 내가 정말 확실하지 않았다,그래서 나는 생각도록 요청할 수 있습니다 강력한 개발자입니다.:)

기본적으로 무엇을 하고 싶은 엔터티를 사용합니다면 그들 내 context:고양이 getter,세터 등과 같은 정상적인 Pojo.내가 사용하는 경우 EJB 이용하여 원격 inferface,엔터티를 얻으로부터 분리된 핵심 인프라의 더-이동합니다.

나는 생각에 대해 쓰기 레이어와 같은 이 MSc 문입니다.의 경우 죽은 아이디어를 알려 주시기 바랍니다.지 않는 경우에,저에게 말하고 싶은 경우에는 하나입니다.

또는 이와 같은 요구가 있는 경우 도구,밖에 알려주세요!

도움이 되었습니까?

해결책

에서는 기본적인 세계 Java EE 응용 프로그램으로 나뉘어 다양한 레이어가 있는 4 개의 기본 레이어

+--------------------+
|   Presentation     |
+--------------------+
| Controller/Actions |
+--------------------+
| Business Delegate  |
|     (Service)      |
+--------------------+
|  Data Access Layer |
+--------------------+
|      Database      |
+--------------------+

귀하의 응용 프로그램으로 분할한 레이어 마우스 오른쪽 버튼으로 처음부터 그러한할 수 있는 특정 시점에서의 시간을 바꾸기 레이어에 영향을 미치지 않으면서의 그의 형제층이다.

예를 사용한 경우 JDBC 를 위한 데이터 액세스 층 수 있어야 합 그것을 대체하는 최대 절전 모드에 영향을 미치지 않고 비지니스는 대리자 또는 데이터베이스 계층입니다.의 이익을 사용하는 아키텍처를 허용하는 협업으로 다양한 기술.당신이 비즈니스를 위임(서비스 layer)할 수 있어야한 이야기를 웹 서비스와 손잡이 응용 프로그램이 처리하지 않고 심지어는 브라우저!

에 관한 JSP 를 사용하여 프레젠테이션 계층으로,다른 기술을 사용할 수처럼, 속도, 프리 마커, 로 iberck 위에서 언급된,태피스트리는 또한 그것의 자신의 렌더링 엔진입니다.당신이 사용할 수 있는 XML+XSLT 또한 렌더링합니다.가 있 UI 응용 프로그램을 관리하기도 사용할 수 있음 타일sitemesh, 는 데 도움을 통합하는 다양한 기술로 다른 구성 요소의 페이지를 표시합니다.

사용할 수도 있습니다 가벼운 무게 스윙 구성 요소를 때리 JNLP 을 개발할 데스크탑 스타일의 기업 응용 프로그램.우리가 필요한 것은 약간의 상상력과 클라이언트 요구 사항 및 우리가 사용할 수 있습니다 그것으로 프레젠테이션층이다.

다른 팁

나는 그것을 시도한 적이 없지만 JSF는 더 잘 작동해야합니다. 페이스 성 JSP보다.

IBM이 있습니다 기사 그것에 대해.

아. 내 질문을 제대로 얻지 못한 것 같습니다 :)

콩은 응용 프로그램 내에서 서비스를 제공하기 위해 있습니다. Swing GUI가있는 독립형 Java 응용 프로그램을 개발하고 싶다고 가정 해 봅시다. 해당 응용 프로그램에서 Java EE 앱의 범위에있는 엔터티를 사용하고 싶습니다.

그것이 제가 원활하게하고 싶은 것입니다 : 엔티티를 만들고, 수정하고, 직관적 인 방식으로 삭제하고, EntityManager-detachment 문제에 관심을 갖지 않고 직관적 인 방식으로 삭제합니다 (EJB를 원격으로 호출하고 엔티티 객체를 전달하는 경우 분리됩니다. 돌아 오기 전에).

웹 응용 프로그램을 개발하고 싶지 않습니다. JSF/JSP 등은 강력하게 통합되지만 많은 환경에서 독립형 클라이언트 응용 프로그램이 더 좋습니다. :)

보고 귀하의 의견이 중간에,나는 당신이 원하는 데스크톱 프레임워크를 Java EE.

여기에 해답은 JSF 작품을 통해 servlet api 를 사용합니다.확실히,웹 기다려야하지만,포함할 수 있습니다 tomcat 또는 부두에서 당신의 응용 프로그램입니다!

가능성은 거의 끝이없는 경우,귀하의 비즈니스층이론,정의를 구축하는 스윙 층을 호출하는 비즈니스 기능이 있다.

또한,Java EE 은 API,일부 부품을 대체할 수 있습니다,또는 당신이 사용할 수 있습니다 그것의 일부입니다.컨테이너에 대한 대부분을 다루는 EJB,서블릿 JNDI 및 다른 작은 물건입니다.모든 이에 의해 사용될 수 있습 데스크탑 앱도.

그래서 대답에 따라 달라는 귀하의 특정 목표 및 실제 설계/구현합니다.

한 가지 대안은 스프링 프레임 워크. Spring은 바인딩 엔티티 객체에 대한 자체 지원을 제공하고 뷰에 연결되면 Geting/Setting을 처리합니다. 선택하고 선택할 수있는 많은 스프링 모듈이 있습니다. Spring MVC와 Spring 웹 플로우는 모두 체크 아웃 할 가치가 있습니다. Spring MVC (IMO)는 시작하기가 더 간단하지만 Sring 웹 플로우를 사용하면보다 복잡한 탐색 및 더 많은 범위 옵션 (예 : Flow Scope)이 가능합니다. 책을 찾고 있다면 봄이 작동합니다 하강입니다. 스프링을 사용하기 위해서는 다루어야 할 몇 가지 개념 (예 : 종속성 주입)이 있지만 시간의 가치가 있습니다.

또 다른 대안은 tapestry5 뼈대. Tapestry는 Java에서 역동적이고 강력하며 확장 가능한 웹 애플리케이션을 생성하기위한 오픈 소스 프레임 워크입니다. 태피스트리는 표준 Java Servlet API를 보완하고 빌드하므로 모든 서블릿 컨테이너 또는 응용 프로그램 서버에서 작동합니다.

태피스트리는 웹 응용 프로그램을 구성 요소로 구성된 페이지 세트로 나눕니다. 이는 일관된 구조를 제공하여 태피스트리 프레임 워크가 클라이언트 또는 서버의 지속적인 상태 저장, 사용자 입력 유효성 검증, 현지화/국제화 및 예외보고와 같은 주요 문제에 대한 책임을집니다. 태피스트리 애플리케이션을 개발하려면 일반 HTML을 사용하여 HTML 템플릿을 작성하고 템플릿을 소량의 Java 코드와 결합해야합니다. 태피스트리에서는 객체와 해당 객체의 방법과 속성, 특히 URL 및 쿼리 매개 변수 측면에서 응용 프로그램을 만듭니다. Tapestry는 Java 웹 응용 프로그램에 진정한 객체 지향 개발을 제공합니다.

Beans의 이데올로기는 요즘 내가 아는 적절한 자바 프레임 워크에 있습니다. Rich가 언급했듯이 Spring은 훌륭하고 훌륭한 만능 비즈니스 로직 프레임 워크입니다 (확인 JDBC 템플릿 수업, 그것들은 단순히 굉장합니다 - 또 다른 위대한 보석은 ApplicationContext.xml 무엇인가)와보기 층을 위해 나는 개인적으로 선호합니다. 아파치 개찰구.

나는 당신이 직접 만들어야한다고 믿지 않고 대신 당신의 요구에 맞는 프레임 워크를 찾아 코드 기반에 기여하기 시작합니다. 이렇게하면 이미 형성된 사용자 기반으로 시작하면 코드가 더 철저하게 작성됩니다. 당신을 더 나은 프로그래머로 만들 것입니다.

성배 (성배)http://www.grails.org/) 또는 그리폰 (http://griffon.codehaus.org/) 관심이있을 수 있습니다

StringTemplate Antlr의 배후에있는 Terrence Parr에 의해 작성되었습니다. 모델에서 일종의 텍스트 프레젠테이션을 생성하는 데 관심이 있다면 이것은 매우 좋습니다.

XML, 웹 페이지 및 도트 파일 같은 모델에서. 객체를 렌더링하기 위해 템플릿을 작성합니다. 이 템플릿은 모델에서 파생 된 데이터를 기반으로 다른 템플릿 (재귀 적으로 포함)을 호출 할 수 있습니다. (QV 그림 기능)

getters and map.get() 템플릿 내에서 직접 호출 할 수 있습니다. 모델은 모든 pojo 일 수 있습니다. 세인트는 컨트롤러와의 엄격한 분리에 자부심을 가지고 있으므로 템플릿 자체에는 거의 논리가 허용되지 않습니다.

이 작은 언어들과 마찬가지로, 그것은 배우기가 새로운 것이며, 당신이 찾고있는 것이 아닐 수도 있습니다. 그것은 나에게 정말 잘 맞았다.

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