我有一个带有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
在未调用FacesServlet
时可能发生这种情况。它负责解析Facelet文件并完成所有JSF工作。
您需要确保您的请求URL(您在浏览器地址栏中看到的URL)与FacesServlet
的URL模式匹配,因为它在web.xml
中被映射。例如,如果它映射到*.jsf
的URL模式上,那么您需要确保通过
http://localhost: 8080/contextname index.jsf
或者当您想在每个*.xhtml
请求上调用FacesServlet
时,那么您需要相应地更改web.xml
中映射的URL模式(推荐)
<url-pattern>*.xhtml</url-pattern>