【问题标题】:Why am I getting h:outputLabel as an unknown tag?为什么我将 h:outputLabel 作为未知标签?
【发布时间】:2013-02-08 20:48:46
【问题描述】:

我正在为我实习期间的一个项目尝试学习 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>

【问题讨论】:

    标签: jsf facelets


    【解决方案1】:

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

    将该 XML 命名空间添加到您的 &lt;html&gt; 元素。

    <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://java.sun.com/jsf/html">
    

    另见:


    与具体问题无关&lt;h:outputLabel&gt; 生成一个 HTML &lt;label&gt; 元素,旨在标记 HTML 输入元素。您似乎只想显示一些文本。在这种情况下,您实际上使用了错误的元素,您应该使用&lt;h:outputText&gt;

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

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

    Welcome #{loginbean.name}
    

    另见:

    【讨论】:

    • 您能解释一下,为什么最好在模板文本中使用它,而不使用 h:outputText?它真的节省时间吗,因为它不在 jsf-tree 中?
    • @marcel:它将最终出现在树中,但开销更少且可维护性更好。
    • 太快了!谢谢你:)
    猜你喜欢
    • 2014-11-17
    • 2022-01-11
    • 2015-03-12
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 2016-03-25
    • 2011-01-07
    相关资源
    最近更新 更多