중첩 된 JSP 2.0 태그에서 EL 표현식을 매개 변수로 제공하려면 어떻게해야합니까?
문제
JSP 2.0 태그를 호출하기 위해 이와 같은 일을하고 싶습니다.
<mytags:foo abc="<%=def%>">
<mytags:bar ghi="<%=jkl%>"/>
</mytags:foo>
어디서 문자열 def
그리고 jkl
JSP 파일에 Earielr이 정의됩니다. 내 태그 파일이 다음과 같이 보인다고 가정합니다.
foo.tag
:
<%@ tag body-content="scriptless" %>
<%@ attribute name="abc" required="true" %>
<div class="${abc}">
<jsp:doBody/>
</div>
bar.tag
:
<%@ tag body-content="scriptless" %>
<%@ attribute name="ghi" required="true" %>
<div>${ghi}</div>
출력이 다음과 같이 보이기를 원합니다.
<div class="def">
<div>jkl</div>
</div>
(변수를 가정합니다 def
그리고 jkl
초기화되었습니다 def
그리고 jkl
, 호출 JSP 파일에서 각각.)
외부 태그는 속성을 잘 가져옵니다 (<div class="def">
)하지만 내면은 실패합니다.
이게 가능해? JKL을 해결할 수없는 오류가 발생합니다.
해결책
참고 body-content="scriptless"
태그 지침의 속성. 이것은 태그로 둘러싸인 본체에 스크립트 코드를 포함 할 수 없음을 의미합니다 ( <% %>
물건). el을 사용해야합니다.
JSP의 재료를 다음과 같이 변경하면 다음과 같습니다.
<c:set var="def" value="def"></c:set>
<c:set var="jkl" value="jkl"></c:set>
<mytags:foo abc="${def}">
<mytags:bar ghi="${jkl}"/>
</mytags:foo>
추가해야합니다<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
제휴하지 않습니다 StackOverflow