في بعض الأحيان أرى url JSF هو *.jsf ، وأحيانًا *.xhtml وأحيانًا /وجوه / *. لماذا ا؟

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

سؤال

حاولت تعلم 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.

أنظر أيضا:

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top