중첩 된 JSP 2.0 태그에서 EL 표현식을 매개 변수로 제공하려면 어떻게해야합니까?

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

  •  22-08-2019
  •  | 
  •  

문제

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" %>

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