2010-06-08 40 views
7

Máy chủ của tôi là glassfish v3, trình duyệt của tôi là firefox 3.6.3 và tôi đang sử dụng Netbeans 6.8 Câu hỏi của tôi là tại sao trường văn bản không hiển thị trong trình duyệt của tôi. Tôi chỉ thấy nhãn.Mẫu JSF không hiển thị

<?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> 

Các 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> 
+0

như thế nào Giao diện "Xem nguồn" trong trình duyệt khi trang được tải? –

+0

html kết quả trông giống hệt như mã ở trên. – AnAmuser

+0

hiển thị cho chúng tôi web.xml của bạn – Bozho

Trả lời

14

Bạn cần phải chắc chắn rằng URL yêu cầu (khi bạn nhập vào thanh địa chỉ trình duyệt) khớp với số url-pattern của số FacesServlet. I E. không mở trang bằng http://example.com/context/page.xhtml, nhưng mở trang bằng http://example.com/context/page.jsf. Nếu không, FacesServlet sẽ không được gọi và trang XHTML của bạn với các thành phần JSF sẽ không được phân tích cú pháp theo bất kỳ cách nào. Bạn sẽ chỉ thấy các thẻ "thuần HTML" như <fieldset>, v.v. trong trình duyệt và bạn sẽ thấy mã nguồn JSF không thay đổi trong nguồn HTML được trả về khi bạn thực hiện Xem nguồn trong trình duyệt.

+0

Ok. Bây giờ tôi đã thay đổi tập tin chào mừng là một tập tin jsf, và nó hoạt động. Như bạn có thể đoán tôi là một tổng số newbie trên điều web này. Tôi đang cố gắng để làm một số hướng dẫn, nhưng nó là bực bội khi ngay cả những điều dễ dàng sẽ không làm việc :) – AnAmuser

+2

Đó là một vấn đề đọc đúng hướng dẫn đúng cách. Tôi khuyên bạn nên bắt đầu tại đây: http://www.coreservlets.com/JSF-Tutorial/jsf2/ – BalusC

+1

AnAmuser, nếu bạn cảm thấy câu trả lời này là chính xác, trong đó giải quyết được sự cố của bạn, hãy nhấp vào hộp kiểm bên cạnh câu trả lời cho " chấp nhận nó –

0

Kiểm tra xem bạn đã cấu hình Faces-Servlet trên trang này

+0

Lập bản đồ Khuôn mặt Servlet được tự động thực hiện cho bạn khi sử dụng một máy chủ Java EE 6 như Sun GlassFishTM Enterprise Server v3. – AnAmuser

+1

ok. nhưng những gì nó sửa chữa bài của trang? .xhtml? Bạn có URL nó là somthing.jsf và được đặt trong WEB.xml để ánh xạ servlet trên * .jsf không? – Dejell

+0

Đây là tệp xhtml. và tệp web.xml hiện có trong câu hỏi – AnAmuser

7

Thêm phần này vào web.xml của bạn:

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

Vấn đề bạn phải đối mặt với có thể được giải quyết trong web.xml tập tin được lưu trữ trong WEB-INF dir trong dự án ứng dụng web của bạn. Bạn cần mở tệp đó và thêm nội dung xml sau để làm cho các trang của bạn chạy đúng cách.

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

Nếu tập tin .xml bạn doesnt tồn tại trong thư mục đã đề cập, bạn có thể thêm bằng cách nhấp vào dự án ứng dụng web của bạn, thêm tập tin mới và sau đó chọn Standard Deployment Descriptor (web.xml)

Các vấn đề liên quan