使用JSF标记添加了文本框但在屏幕上不可见

时间:2011-07-26 01:42:06

标签: java jsf netbeans glassfish facelets

我有一个带有JSF标签的Facelet文件来显示标签,输入字段和按钮,但是当我运行它时,这些部分在浏览器中是不可见的。

<?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 个答案:

答案 0 :(得分:2)

当未调用FacesServlet时,可能会发生这种情况。它是负责解析Facelet文件并完成所有JSF工作的人。

您需要确保您的请求网址(您在浏览器地址栏中看到的网址)与FacesServlet中映射的web.xml的网址格式相匹配。如果它例如映射到*.jsf的URL模式,那么您需要确保在浏览器中打开页面

  

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

或者当您想要在每个FacesServlet请求上调用*.xhtml时,您需要相应更改web.xml中的映射的网址格式(推荐)

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