قم بتضمين ملف ثابت في JSP مع اسم ملف متغير على WebSphere 6
-
04-10-2019 - |
سؤال
أنا أعاني من تضمين ملف ثابت في JSPs WebSphere 6.0.2.17. حاولت هذا:
<% final String MY_DIR = ResourceBundle.getBundle("mybundle").getString("props.pages.wcm"); %>
<% final String page = ResourceBundle.getBundle("mybundle").getString("page"); %>
<% final String inc = MY_DIR + "/" + bonus; %>
<%@include file="<%= inc %>"%>
المسار هو/wcm/بعض/other/dir/page ويمكنني طباعة ذلك بسعادة out.write(inc)
. للأسف include
(و ال jsp:include
) لا يشمل الملف على الإطلاق. لا توجد رسالة خطأ ، ولكن لم يتم تضمين المحتوى ... يمكن الوصول إلى الملف عبر المتصفح.
هل يجب علي إنشاء JSP كامل لهذا العمل؟ أنا فقط بحاجة إلى ملف HTML.
تحديث
نظرًا لأنه سيكون هناك المزيد من الصفحات التي يجب تضمينها عاجلاً أم آجلاً ، قررت إنشاء taglib مخصص لهذه الحالة. وبهذه الطريقة ، يمكنني أن أقلص الوظيفة وتعيين الدليل الأساسي لمحتوىي الثابت في ملف خاصية.
المحلول
حاول استخدام requestDispatcher.include ():
<%
RequestDispatcher r = request.getRequestDispatcher(inc);
r.include(request, response);
%>
يشبه هذا تمامًا التوجيه ، باستثناء أي صفحة ستشملها ستتم معالجتها في كل مرة (إذا كانت JSP أو Servlet). يشمل التوجيه فقط الصفحة مرة واحدة عندما يتم تجميع ملف JSP الذي يتواجد التوجيه فيه.
نصائح أخرى
حاولت من خلال jsp:include
وتم تضمين الملف تمامًا.
ضع في اعتبارك أنه يجب عليك توفير المسار النسبي وليس المسار المطلق.