为什么我得到h:outputLabel作为未知标签?

use*_*260 2 jsf facelets

我正在尝试学习JSF,因为我在实习期间有一个项目,而且我真的很挣扎.

任何人都可以解释为什么在这段代码中我收到h:outputLabel的"未知标签"警告?

谢谢!

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Insert title here</title>
</head>
<body>

    <h:outputLabel value ="Welcome #{loginbean.name}"></h:outputLabel>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 7

因为您忘记声明h:XML命名空间.

将该XML命名空间添加到<html>元素中.

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html">
Run Code Online (Sandbox Code Playgroud)

也可以看看:


具体问题无关,<h:outputLabel>生成HTML <label>元素,意图标记HTML输入元素.您似乎只想显示一些文本.在这种情况下,你实际上使用了错误的元素,你应该使用<h:outputText>.

<h:outputText value="Welcome #{loginbean.name}" />
Run Code Online (Sandbox Code Playgroud)

或者甚至更好,只需在模板文本中使用EL即可.JSF 1.x中不支持此功能,但Facelets上的JSF 2.x支持此功能.

Welcome #{loginbean.name}
Run Code Online (Sandbox Code Playgroud)

也可以看看: