我正在尝试在jsf:https://netbeans.org/kb/docs/web/jsf20-intro.html
上学习本教程在“将管理的Bean连接到页面”一章中,您必须切换等效JSF HTML表单组件的HTML表单元素。但在我这样做之后(只是评论/取消注释已经存在的代码)它是不可见的。
我已将xmlns:h="http://xmlns.jcp.org/jsf/html"
添加到html标记中;我没有从IDE中得到任何错误;表格出现在检查元素中;我也尝试了xmlns:h="http://java.sun.com/jsf/html"
,但仍然没有。
这是我的页面:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="css/stylesheet.css" rel="stylesheet" type="text/css" />
<!--<h:outputStylesheet name="css/stylesheet.css" />-->
<title>Greeting</title>
</head>
<body>
<div id="mainContainer">
<div id="left" class="subContainer greyBox">
<h4>Hi, my name is Duke!</h4>
<h5>I'm thinking of a number
<br/>
between
<span class="highlight">0</span> and
<span class="highlight">10</span>.</h5>
<h5>Can you guess it?</h5>
<!-- <form action="response.xhtml">
<input type="text" size="2" maxlength="2" />
<input type="submit" value="submit" />
</form>-->
<h:form>
<h:inputText id="userNumber"
size="2"
maxlength="2"
value="#{UserNumberBean.userNumber}"/>
<h:commandButton id="submit" value="submit" action="response"/>
</h:form>
</div>
<div id="right" class="subContainer">
<img src="duke.png" alt="Duke waving" />
<!--<h:graphicImage url="/duke.png" alt="Duke waving" />-->
</div>
</div>
</body>
的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>/faces/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
答案 0 :(得分:2)
JSF-将<h:form>
和<h:inputText>
等标记返回给客户端(您的浏览器),而不是呈现为正确的HTML,这是您整个设置错误的明确信号。 (浏览器会正确地忽略它不理解的任何标签,这就是为什么你不能看到表格的任何内容。)
如果您正在映射您的网址格式:
<url-pattern>/faces/*</url-pattern>
然后您应该删除第二个欢迎文件条目
<welcome-file>index.xhtml</welcome-file>
因为它永远不会起作用,因为它与模式不匹配,所以整个请求不由FacesServlet
处理,在这种情况下,普通.xhtml文件按原样提供!
(它甚至在您所指的教程中明确地说,在#34; 将JSF 2.x支持添加到Web应用程序&#34;部分的末尾。)