JSF를 Spring MVC의 뷰 기술로 활용
저는 현재 작은 Spring MVC PoC를 구현하고 있으며, 우리 회사의 대부분의 사람들이 프라임페이스가 있는 J2EE 환경에 익숙하기 때문에 JSF를 뷰 기술로 사용하고 싶습니다.
Spring MVC 3는 JSF를 지원합니까, 아니면 단순히 JSP를 지원합니까?저는 두 가지를 혼합한 여러 기사를 읽었습니다.
저는 매력적인 UI를 만드는 것이 필요합니다.JSP를 뷰 기술로 사용하여 스프링 MVC를 사용하는 간단한 방법이 있습니까?
우리의 응용 프로그램은 여러 페이지의 일정/일정을 사용합니다.기본적으로 시간 관리 애플리케이션입니다.
당신은 개념적인 실수를 하고 있습니다.JSF는 뷰 기술이 아닙니다.JSF는 MVC 프레임워크입니다.JSF는 구성 요소 기반 MVC이고 Spring MVC는 요청 기반 MVC입니다.따라서 그들은 완전한 경쟁자입니다.혼합할 수 없습니다.당신은 둘 중 하나를 선택해야 합니다.대신 JSP와 Facelet은 진정한 뷰 기술입니다.Java EE 6(2009년 12월) 이후 JSP는 더 이상 사용되지 않으며 JSF의 기본 보기 기술로 Facelet(XHTML)으로 대체되었습니다.
JSP 뷰 기술과 함께 Spring MVC를 사용할 수 있습니다.또한 Spring MVC를 Facelet 보기 기술(및 기타 많은 기술)과 함께 사용할 수 있습니다.그러나 PrimeFaces와 같은 JSF 구성 요소 라이브러리는 물론 JSF 구성 요소에도 SpringMVC를 사용할 수 없습니다.JSF 출력 구성 요소는 작동할 수 있지만 JSF 입력 구성 요소는 전혀 작동하지 않습니다.Spring MVC에는 이미 자체 MVC가 있습니다.<form:xxx>
입력할 태그입니다.이들을 혼합하더라도 혼란스러운 코드 기반에서 두 프레임워크의 기능의 절반을 사용하게 됩니다.이건 말이 안 돼요.PrimeFaces와 동일한 UI를 사용하기만 하면 jQuery UI를 가져옵니다.이것은 또한 PrimeFaces가 커버 아래에서 사용하는 것과 정확하게 일치합니다.PrimeFaces는 jQuery 기반 JSF 구성 요소 라이브러리입니다.
반대쪽에서는 Spring IoC/DI와 Spring MVC를 혼동한 것도 매우 좋을 수 있습니다. Spring IoC/DI는 JSF와 함께 사용할 수 있습니다.JSF managed bean facility를 교체할 수 있습니다(@ManagedBean
친구들)facility (스프링 managed bean facility) by Spring managed bean facility ()@Component
그리고 친구들), 보통 사용하기 위한 유일한 목적을 가지고 있습니다.@Autowired
JSF 백 빈에서.하지만 그게 다입니다.JSF MVC 프레임워크 라이프사이클, JSF 구성요소 및 뷰 기술은 변경되지 않습니다.이와 동등한 표준 Java EE는 CDI(및 EJB)를 사용합니다.
Spring Security에도 동일한 사례가 적용됩니다.JSF와 함께 사용할 수 있지만 Spring Security + Spring MVC 대상 설명서/예문을 따라 구성하지 말고 Spring Security + JSF 문서/예문만 따라야 합니다.비즈니스 작업에 대한 Spring Security 제약 조건은 JSF 관리 Bean 설비를 Spring 관리 Bean 설비로 교체할 수 있습니다.따라서 이전 단락에서 설명한 바와 같이 "JSF의 스프링 통합"이 여전히 필요합니다.이 모든 것에 해당하는 표준 Java EE는 다음을 통해 컨테이너 관리 보안(JAAS/JASPIC)을 사용합니다.<security-constraint>
의 web.xml
.
Spring WebFlow에도 동일한 사례가 적용됩니다.또한 이전 버전을 여러 JSF 구성 요소 라이브러리와 함께 사용할 경우 충돌이 발생하므로 최신 버전의 Spring WebFlow를 사용하고 있는지 확인하기만 하면 됩니다.또한 JSF 2.2 이후, 새로운 Faces Flows 기능이 표준 Java EE API의 일부로 도입되어 기본적으로 Spring Web Flow가 불필요하게 되었습니다.
그리고 봄 부츠가 있습니다.Java EE에서는 이와 직접적으로 동등한 기능을 제공하지 않습니다.으로 Spring Boot과 응용 EE 프로그램을 할 수 .main()
방법은 "쉽고 추상적인 방법으로".Spring Boot가 없었다면 가능했을 것입니다(그렇지 않았다면 Spring Boot은 존재하지 않았을 것입니다). 문서를 기반으로 서버별 세부 정보를 고려해야 하므로 구성에 대한 작업은 조금 더 늘어날 뿐입니다.예:언더도우와 제티.
JSF와 Spring MVC로 돌아가서, 꼭 필요하다면, Spring MVC와 JSF를 같은 웹 애플리케이션에서 서로 옆에서 안전하게 실행할 수 있지만, 서버 측에서는 상호 운용이 불가능합니다.그들은 완전히 독립적으로 운영될 것입니다.JSF 생성 HTML 페이지의 일부 JavaScript가 동일한 웹 응용 프로그램에서 Spring 기반 REST 웹 서비스 호출을 호출하는 경우 클라이언트 측에서 최대로 서로 접촉합니다.그러나 Spring 웹 서비스는 그에 따라 대응하기 위해 JSF에 대해 아무것도 알 필요가 없습니다.Spring REST 웹 서비스에 해당하는 표준 Java EE는 JAX-RS입니다.
다가오는 Java EE 8은 JSF와 Spring MVC의 교훈을 기반으로 "MVC"라는 이름의 새로운 요청 기반 MVC 프레임워크와 함께 제공될 것이며, 이로써 Spring MVC를 대체하고 JSF의 표준 대안을 제공할 것입니다.
참고 항목:
- Java EE가 정확히 무엇입니까?
- 요청 MVC와 구성 요소 MVC의 차이
- Java Server Faces 2.0의 주요 단점은 무엇입니까?
- CSS, HTML, 자바스크립트, jQuery에서 UI를 달성할 수 있을 때 JSF의 필요성은 무엇입니까?
- Spring 또는 EJB3 또는 이들 모두를 함께 사용하는 것이 필요하거나 편리한 경우는 언제입니까?
- 스프링 JSF 통합: 스프링 구성 요소/서비스를 JSF 관리 빈에 주입하는 방법은 무엇입니까?
- JSF 2.0 이후의 뷰 정의 언어로 JSP보다 Facelet을 선호하는 이유는 무엇입니까?
봄 MVC와 JSF는 잘 어울리지 않습니다.보기 관련 항목에 JSF를 사용할 수 있으며, Spring이 지원되는 항목(서비스, daos 등)을 관리하고 연결하도록 할 수 있습니다.그러나 @Controllers를 JSF 페이지와 일치시키는 것은 실제로 잘 작동하지 않습니다(둘 다 구성 요소 기반에 기반한 서로 다른 스택 요청).
하려면 Spring JSF를 .SpringBeanFacesELResolver
sys-config.xml로 합니다.그러면 Springs 애플리케이션 컨텍스트에서 빈즈를 찾을 수 있습니다.이렇게 하려면 CDI 기반 주석이 아닌 일반 JSF 주석을 사용해야 합니다.
Spring Webflow가 여기에 도움이 될 수 있습니다.이 샘플 프로젝트를 확인하십시오.https://github.com/spring-projects/spring-webflow-samples/tree/master/primefaces-showcase
언급URL : https://stackoverflow.com/questions/18744910/using-jsf-as-view-technology-of-spring-mvc
'programing' 카테고리의 다른 글
BeautifulSoup에서 스크립트 태그를 제거할 수 있습니까? (0) | 2023.09.05 |
---|---|
데이터 테이블 에이잭스 예외 후 사용자 지정 오류 메시지 (0) | 2023.09.05 |
View Pager에서 조각 검색 (0) | 2023.09.05 |
Windows 서버에서 MySQL 데이터베이스 자동 백업 (0) | 2023.09.05 |
파이썬 팬더와 퍼지 매치 병합을 할 수 있습니까? (0) | 2023.09.05 |