2010-06-08 7 views
7

Мой сервер - стеклянная рыба v3, мой браузер - firefox 3.6.3, и я использую Netbeans 6.8 Мой вопрос в том, почему текстовое поле не отображается в моем браузере. Я вижу только ярлык.Форма JSF не отображается

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

Как «Просмотр источника» смотрите в браузере при загрузке страницы? –

+0

Полученный html выглядит точно так же, как и код выше. – AnAmuser

+0

показать нам ваш web.xml – Bozho

ответ

14

Вы должны убедиться, что запрос URL (как вы вводите в адресной строке браузера) соответствует url-patternFacesServlet. То есть не открывайте страницу на http://example.com/context/page.xhtml, но откройте ее http://example.com/context/page.jsf. В противном случае FacesServlet не будет вызываться, и ваша страница XHTML с компонентами JSF не будет обрабатываться каким-либо образом. Вы увидите только те «простые HTML», как <fieldset> и т. Д. В браузере, и вы увидите исходный код JSF без изменений в возвращаемом HTML-источнике, когда вы делаете Просмотр исходного кода в браузере.

+0

Ок. Теперь я изменил файл приветствия как файл jsf, и он работает. Как вы, наверное, можете догадаться, что я новичок в этой веб-игре. Я пытаюсь сделать некоторые уроки, но это расстраивает, когда даже эти простые вещи не будут работать :) – AnAmuser

+2

Это вопрос правильного чтения правильных руководств. Я предлагаю вам начать здесь: http://www.coreservlets.com/JSF-Tutorial/jsf2/ – BalusC

+1

AnAmuser, если вы считаете, что этот ответ верен, поскольку он решил вашу проблему, установите флажок рядом с ответом на " принять это –

0

Проверьте, если вы настроили Faces-сервлета на этой странице

+0

Сопоставление сервлетов Faces автоматически выполняется для вас при использовании Java EE 6server, например Sun GlassFishTM Enterprise Server v3. – AnAmuser

+1

ОК. но что это сообщение исправления страницы? .xhtml? вы связываете его как somthing.jsf и устанавливаете в WEB.xml для отображения сервлета на * .jsf? – Dejell

+0

Это файл xhtml. и файл web.xml теперь находится в вопросе – AnAmuser

7

Добавьте это в web.xml:

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

Проблема вы столкнулись с может быть решена в web.xml файл хранится в WEB-INF реж в проекте веб-приложений. Вам нужно открыть этот файл и добавить следующий xml-контент, чтобы ваши страницы работали правильно.

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

Если файл .xml оленья кожа существовать в указанной директории, вы можете добавить его, нажав на ваш проект веб-приложения, добавить новый файл, а затем выберите Стандартный Deployment Descriptor (web.xml)