في بعض الأحيان أرى url JSF هو *.jsf ، وأحيانًا *.xhtml وأحيانًا /وجوه / *. لماذا ا؟
-
26-09-2019 - |
سؤال
حاولت تعلم JSF ، وأحيانًا أرى عنوان URL *.jsf
وأحيانًا *.xhtml
أو /faces/*
. هل يمكن لأحد أن يملأ معرفتي من فضلك؟ عندما أقوم بإنشاء JSF باستخدام Facelet ، فإن تمديد الملف هو .xhtml
, ، فأين يفعل .jsf
امتداد URL يأتي من؟
المحلول
ال .jsf
الامتداد هو المكان FacesServlet
هو خلال فترة JSF 1.2 غالبًا ما يتم تعيينها في web.xml
.
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
ال .xhtml
التمديد من فِعلي ملف FaceLets كما كنت في وضع جسدي في منطقة الويب الخاصة بـ WebApp ، على سبيل المثال Webapp/WebContent/page.xhtml
.
إذا كنت تستدعي هذه الصفحة مع .jsf
تمديد ، على سبيل المثال http://localhost:8080/webapp/page.jsf
ثم FacesServlet
سيتم الاحتجاج بها ، حدد موقع page.xhtml
ملف وحوض/تقديم مكونات JSF الخاصة به. إذا FacesServlet
لم يتم الاحتجاج به ، ثم ينتهي الأمر بالتعرف على رمز مصدر XHTML الخام (والذي يمكن رؤيته بواسطة Clock Right ، أنظر المصدر).
في بعض الأحيان أ *.faces
تمديد أو /faces/*
تم استخدام المجلد. ولكن هذا كان من الخلف في JSF 1.0/1.1 الأعمار. أنت حر في اختيار واستخدام أي رسم الخرائط الذي ترغب في السماح به FacesServlet
استمع ، حتى لو كان لا شيء *.xyz
. يجب أن يكون للصفحة الفعلية نفسها دائمًا .xhtml
الامتداد ، ولكن هذا يمكن تكوينه بما يلي <context-param>
في web.xml
:
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xml</param-value>
</context-param>
هذا سوف يغير FacesServlet
لتحديد موقع page.xml
Instad of (افتراضي) page.xhtml
.
في الآونة الأخيرة ، مع JSF/Facelets 2.0 أ *.xhtml
تم استخدام رسم الخرائط. في JSF/FaceLets 1.x ، لم يكن من الممكن استخدام امتداد رسم الخرائط نفسه مثل الملف الفعلي. سوف يؤدي إلى حلقة لا حصر لها. ولكن نظرًا لأن JSF/Facelets 2.0 ممكن ، فهذا يتيح لك الاتصال بالصفحة بحلول http://localhost:8080/webapp/page.xhtml
.
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
وبهذه الطريقة ، لا تحتاج إلى تكوين بعض القيود المفروضة للأمان لإخفاء ملفات مصدر RAW بعيدًا للحالات كلما تغيرت enduser على سبيل المثال .jsf
في عنوان URL إلى .xhtml
في شريط عنوان المتصفح. لا تزال هناك حاجة فقط إلى اللحاق بالأدوات (IDEs and Plugins) وموارد التعلم للحاق بالانتقال المدعوين *.jsf
ل *.xhtml
. حسب JSF 2.3 ، FacesServlet
سوف يتم تفسيره بشكل افتراضي *.xhtml
أيضا (بجانب /faces/*
, *.faces
و *.jsf
). هذا مُعد إلى Mojarra 2.2.11.
أنظر أيضا:
- هل يمكننا استخدام التعبيرات العادية في أنماط عنوان URL web.xml؟
- اضبط الصفحة الرئيسية الافتراضية عبرu003Cwelcome-file> في مشروع JSF
- يرجع JSF صفحة فارغة/غير مسبقة مع مصدر XHTML/XML/EL عادي/RAW
- ما هو الفرق بين إنشاء صفحات JSF مع .jsp أو .xhtml أو .jsf امتداد
- ما هي ملفات XHTML التي أحتاج إلى وضعها في /ويب-أيها لا؟
- تخصيص Faceservletu003Curl-pattern> للتخلص من تمديد .xhtml