Добавлено текстовое поле с использованием тегов JSF, но НЕ видимое на экране - PullRequest
1 голос
/ 26 июля 2011

У меня есть файл Facelet с тегами JSF для отображения метки, поля ввода и кнопки, но эти части не отображаются в браузере, когда я его запускаю.

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->

 <!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">
     <h:head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
         <title> supply a title</title>
     </h:head>
     <h:body>
         <h:form>
              Name:
            <h:outputLabel value="First Name:"> </h:outputLabel>
            <h:inputText id="name" value="#{DataForm.name}"></h:inputText>
            <h:commandButton value="Doctor Register" action="#{DataForm.submit}">       </h:commandButton>


         </h:form>
     </h:body>
 </html>

Как это вызвано и как я могу решить это?Я использую netbeans 6.9.1 Glassfish 3.1.

1 Ответ

2 голосов
/ 26 июля 2011

Это может произойти, если FacesServlet не был вызван. Именно он отвечает за анализ файла Facelet и выполнение всей работы JSF.

Вы должны убедиться, что URL вашего запроса (тот, который вы видите в адресной строке браузера) соответствует шаблону URL FacesServlet, как он был отображен в web.xml. Например, если он сопоставлен с шаблоном URL-адреса *.jsf, необходимо убедиться, что вы открываете страницу в браузере с помощью

http://localhost:8080/contextname/index.jsf

Или, если вы хотите вызывать FacesServlet при каждом запросе *.xhtml, вам необходимо соответствующим образом изменить шаблон URL для сопоставления в web.xml (рекомендуется)

<url-pattern>*.xhtml</url-pattern>
...