【问题标题】:<h:input> Tag Library supports namespace: http://java.sun.com/jsf/html, but no tag was defined for name: input<h:input> 标签库支持命名空间:http://java.sun.com/jsf/html,但没有为名称定义标签:input
【发布时间】:2013-04-11 13:05:01
【问题描述】:

我正在尝试实现 jsf + primefaces + twitter bootstrap:

<!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"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.prime.com.tr/ui"
>
<h:head>
    <title>IMPORT JSF SET ATTRIBUTES</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="description" content="" />
    <meta name="author" content="" />

    <!-- Le styles -->
    <h:outputStylesheet name="css/bootstrap.css" />
    <h:outputStylesheet name="css/bootstrap.min.css" />
    <h:outputStylesheet name="css/override.css" />

    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

    <!-- Le fav and touch icons
<link rel="shortcut icon" href="../assets/ico/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">
-->
</h:head>
<h:body>
    <div class="navbar navbar-inverse navbar-static-top">
        <div class="navbar-inner navbar-large">
            <div class="container">
                <a class="brand" href="#">Name</a>
                <ul class="nav">
                    <li><a href="#buy">Link</a></li>
                    <li><a href="#about">Link</a></li>
                </ul>
                <form class="navbar-form pull-left">
                    <div class="input-append offset1">
                        <h:input class="span5" placeholder="put search terms here"
                            type="text" />
                        <button class="btn" type="submit">
                            <i class="icon-search"></i>
                        </button>
                    </div>
                </form>
                <ul class="nav pull-right">
                    <li class="dropdown"><a class="dropdown-toggle"
                        data-toggle="dropdown" href="#"> How to <b class="caret"></b>
                    </a>
                        <ul class="dropdown-menu">
                            <li class="nav-header">Link</li>
                            <li><a href="#">Link 1</a></li>
                            <li><a href="#">Link 2</a></li>
                            <li><a href="#">Link 3</a></li>
                            <li class="divider"></li>
                            <li class="nav-header">Link</li>
                            <li><a href="#">Link 1</a></li>
                            <li><a href="#">Link 2</a></li>
                            <li><a href="#">Link 3</a></li>
                        </ul></li>
                    <li><a href="#login">Login</a></li>
                    <li><a href="#register">Signup</a></li>
                </ul>
            </div>
        </div>
    </div>

    <div class="container">[Template content will be inserted here]</div>

    <footer>
    <ul class="inline text-center">
        <li>© 2013</li>
    </ul>
    </footer>
    <!--/.fluid-container-->

    <!-- Le javascript
================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <h:outputScript name="js/jquery-1.7.2.min.js" />
    <h:outputScript name="js/bootstrap.min.js" />
    <h:outputScript name="js/jquery.dataTables.min.js" />
    <h:outputScript name="js/bootstrap.js" />

</h:body>
</html>

但是,我得到:

<h:input> Tag Library supports namespace: http://java.sun.com/jsf/html, but no tag was defined for name: input

非常感谢您的回答!

【问题讨论】:

  • 我的maven项目有&lt;jsf-version&gt;2.1.3_01&lt;/jsf-version&gt;
  • h:input 标签在 JSF 中不存在。
  • 您从哪本书/教程/资源中了解到&lt;h:input&gt;?还是这只是随机猜测的?为什么你期望它会起作用?无论如何,请为标签文档添加书签:download.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/… 此外,我还会使用一个不错的 IDE 和不错的 JSF 插件。 Eclipse/Netbeans/IntelliJ 已经警告过未知标签,并且在输入时还会显示自动完成建议列表。
  • 顺便说一句,您的模板中存在其他问题。 JSF 组件中的 IE 条件 cmets 和 HTML5 属性不会以这种方式工作,但这取决于不同的问题(在此之前已经多次询问)。

标签: jsf primefaces


【解决方案1】:

h:input 标签在 JSF 中不存在。使用一些特定的输入标签,例如:h:inputHiddenh:inputTexth:inputSecreth:inputTextarea

【讨论】:

  • 我在 Lynda 课程中看到了这个标签。 Eclipse 不显示错误。但是,我向CTRL+Space 检查它没有弹出标签。替代标签是
【解决方案2】:

我有一个问题,你确定你的意思是 h:input 而不是 h:inputtext?

抱歉 -> 编辑:您正在执行以下操作:

          <form class="navbar-form pull-left">
                <div class="input-append offset1">
                    <h:input class="span5" placeholder="put search terms here"
                        type="text" />
                    <button class="btn" type="submit">
                        <i class="icon-search"></i>
                    </button>
                </div>
            </form>

那是纯 html,不适用于 JSF 如果你想使用 JSF 的魔力,你必须这样做:

            <h:form>
                    <h:inputText value="#{hereIsYourManagedBean.field}" />
                    <h:commandButton action="#{hereIsYourManagedbean.action}">
                         DoJsfAction
                    </h:commandButton >

            </h:form>

JSF-Servlet 将捕获您的操作,呈现输入表单,将其放入您的 ManagedBean 字段中,调用 ManagedBean 的方法并最终创建响应,具体取决于您的方法。主要是由您的 faces-config.xml 配置的另一个 xhtml 站点

【讨论】:

  • 请改写你的答案。目前,它看起来像是评论,甚至侮辱了 OP(和未来的读者)。
  • 对不起,我以前是在 JSF 1.2 中开发的,我不太确定 JSF 2.0/2.1 中是否存在这样的组件
  • 你的答案的问题在第一行:愚蠢的问题。有了这句话,即使身体的其他部分是对的,你的答案也是令人反感的。
  • 如果您无法回答问题,最好不要回答。 Stack Overflow 不像一个杂乱无章的讨论论坛,您可以在其中发布猜测/在黑暗中射击作为“答案”(回复)。在这里,应该使用 cmets(请注意,只有在拥有至少 50 名声望时,您才能在其他人的帖子上发布 cmets,因此首先开始发布好的答案;))
  • 顺便说一下,&lt;h:input&gt; 在 JSF 中不存在 :)(也许你也想编辑它)。
猜你喜欢
  • 1970-01-01
  • 2012-07-03
  • 2016-04-09
  • 2011-07-09
  • 1970-01-01
  • 2012-09-09
  • 2012-09-18
  • 2017-11-28
相关资源
最近更新 更多