سؤال

هذا السؤال لديه بالفعل إجابة هنا:

الخادم الخاص بي هو Glassfish V3 ، متصفحي هو Firefox 3.6.3 وأنا أستخدم NetBeans 6.8 سؤالي هو السبب في عدم ظهور ملعب Text في متصفحي. أنا فقط أرى الملصق.

<?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:f="http://java.sun.com/jsf/core">
            <h:head>
                <title>Lookup</title>
            </h:head>
            <h:body>
                <fieldset>
                <legend>Enter Your Customer ID</legend>
                <p>Legal ids are id001, id002, and id003.</p>
                <f:view>
                <h:form>
                    Customer ID:
                    <h:inputText value="#{bankForm.customerId}" />
                    <h:commandButton value="Show Current Balance"
                                     action="#{bankForm.findBalance}" />
                </h:form>
                </f:view>
                </fieldset>
            </h:body>
    </html>

و web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>pages/customer-lookup</welcome-file>
    </welcome-file-list>
</web-app>
هل كانت مفيدة؟

المحلول

تحتاج إلى التأكد من أن عنوان URL للطلب (عند إدخال شريط عنوان المتصفح) يتطابق مع url-pattern التابع FacesServlet. أي لا تفتح الصفحة بواسطة http://example.com/context/page.xhtml, ، لكن افتحه بواسطة http://example.com/context/page.jsf. وإلا فإن FacesServlet لن يتم استدعاءها ولن يتم تحليل صفحة XHTML الخاصة بك مع مكونات JSF بأي شكل من الأشكال. سترى علامات "HTML" فقط <fieldset> وهكذا في المتصفح وسترى رمز مصدر JSF دون تغيير في مصدر HTML الذي تم إرجاعه عند القيام أ أنظر المصدر في متصفح.

نصائح أخرى

أضف هذا إلى web.xml:

  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>

قد يتم حل المشكلة التي واجهتها web.xml ملف مخزن في شبكة الإنترنت DIR في مشروع تطبيق الويب الخاص بك. تحتاج إلى فتح هذا الملف وإضافة محتوى XML التالي من أجل تشغيل صفحاتك بشكل صحيح.

 <web-app>
    ...
    ...
    ...
    <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
  </web-app>

إذا لم يكن ملف .xml الخاص بك موجودًا في DIR المذكور ، يمكنك إضافته بالنقر فوق مشروع تطبيق الويب الخاص بك ، وإضافة ملف جديد ثم اختر واصف النشر القياسي (web.xml)

تحقق مما إذا كنت قد قمت بتكوين الخدمات في هذه الصفحة

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