적어도 기본적인 사용법에서는 속도와 프리 마커가 비슷하게 보입니다.어떤 자바 뷰 기술입니까?
아무튼, "기본 제공"또는 표준보기 프레임 워크는 무엇입니까? 그것은 가장 가능성이 JSTL에 의해 사용되는 Unified Expression Language (EL)의
<c:if test="${someobject.property != null}">
적어도 기본적인 사용법에서는 속도와 프리 마커가 비슷하게 보입니다.어떤 자바 뷰 기술입니까?
아무튼, "기본 제공"또는 표준보기 프레임 워크는 무엇입니까? 그것은 가장 가능성이 JSTL에 의해 사용되는 Unified Expression Language (EL)의
<c:if test="${someobject.property != null}">
보일 것 같아. 그러나 내장되어 있지는 않지만 /WEB-INF/lib
에 jstl-1.2.jar을 놓기 만하면 JSP 페이지 상단에 taglib 중 하나를 TLD 설명서에 따라 선언해야합니다. JSTL core :
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
이렇게하면 링크가 나열된 태그에서 사용할 수 있습니다. core tags의 대부분은 흐름 제어 태그입니다. JSTL도 XML과 SQL 태그 라이브러리를 가지고 있지만 빠른 프로토 타이핑에만 사용되며 실제 제작에는 사용해서는 안됩니다. 그렇다면 (i18n 및 l10n)에 적합한 Format (fmt) taglib가 있습니다. 마지막으로 간단한 EL 기능을 제공하는 유용한 functions (fn) taglib가 있습니다.
다음은 ${}
가지입니다. 이를 expression language이라고합니다. PageContext#findAttribute()
의 도움으로 Javabean과 같은 방식으로 페이지, 요청, 세션 및 응용 프로그램 범위의 "백엔드 데이터"(속성)에 액세스하고 Javabean을 게터으로 호출하기 만하면됩니다. EL은 nullsafe입니다
<%= pageContext.findAttrubute("user").getAddress().getStreet() %>
에 대략 해결
${user.address.street}
: 당신이 스크립틀릿을 이해한다면, 당신은 다음 예제를 이해하게 될 것입니다. ${user}
또는 ${user.address}
이 null
으로 바뀌면 아무 것도 표시하지 않고 그냥 건너 뜁니다. 스크립틀릿에서는 마지막 호출시 중첩 호출에 NPE가 표시되거나 null
만 나타납니다.
그런 다음 #{}
구문으로 표시된 통합 EL이 있습니다. 그것은 (지금까지) JavaServer Faces (JSF)과 결합하여 사용되었습니다. Javabean setter을 마지막 속성에서 호출 할 수 있습니다. 예 : 그것은 방법이 아닌 뷰 기술에서의
pageContext.findAttribute("bean").setFoo(request.getParameter("foo"));
을 다음과 같이
<h:inputText name="foo" value="#{bean.foo}">
은 뒤에서 대략 할 것입니다. JSP 자체는 이미 자체 뷰 기술입니다. JSTL은 taglib입니다. EL은 JSP 사양의 일부일뿐입니다. Java EE가 제공하는 다른 뷰 기술은 XHTML 기반이며 JSP보다 JSF를 훨씬 더 완벽하게 통합하는 Facelets입니다.