كيف يمكنني إعطاء تعبيرات EL كمعلمات في المتداخلة التخطيط الاستراتيجي المشترك به 2.0؟

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

  •  22-08-2019
  •  | 
  •  

سؤال

وأريد أن أفعل شيئا من هذا القبيل لاستدعاء علامة JSP 2.0:

<mytags:foo abc="<%=def%>">
  <mytags:bar ghi="<%=jkl%>"/>
</mytags:foo>

وأين يتم تحديد سلاسل def وjkl 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">) ولكن فشل واحد الداخلي.

هل هذا ممكن؟ أنا على الحصول على الأخطاء التي جكل لا يمكن حلها.

هل كانت مفيدة؟

المحلول

ملاحظة السمة body-content="scriptless" في علامة التوجيه. وهذا يعني أن الجسم محاطة علامة لا يمكن أن يحتوي كود scriptlet (الاشياء <% %>). تحتاج إلى استخدام 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