【问题标题】:Warning in IDE: Tage h:commandLink is unknownIDE 中的警告:标签 h:commandLink 未知
【发布时间】:2015-01-26 05:35:50
【问题描述】:

我的问题是我无法从菜单中调用 bean 的方法。 当我按照以下方式执行时,页面不会将注销显示为 hlink,但是在加载注销后已经触发,我在日志中看到它。 onclick 也是如此。 我试过h:commandLink,但是页面根本没有呈现,IDE 也显示标签h:commandLink 是未知的。我究竟做错了什么? 我需要将注销填充为链接,而不是按钮。

<!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=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>Test</title>
</head>     
<body>
            <div id="container">
                <div id="header">
                    <h1>Test</h1>
                    <h2>test</h2>
                </div>
                <div id="menu">
                    <ul>
                        <li class="menuitem"><a href="#">Home</a></li>
                        <li><a href="#{loginBean.logout}">logout</a></li>

                    </ul>
                    <b>Welcome, #{loginBean.userName}</b>
                </div>
            </div>
    </body>

【问题讨论】:

  • 我建议先暂停一下,先阅读一本不错的 JSF 书籍。这已在第 1 章中介绍。您可以在 jsf.zeef.com 找到一些书籍推荐
  • 你说得对,我已经这样做了。

标签: jsf xhtml


【解决方案1】:
<h:commandLink action = "#{loginBean.userName}>

它会起作用的。我认为 h:commandLink 是未知的,因为您忘记在 xhtml 页面顶部声明 h 标记。此 h 标记包含 JavaServer Faces 规范中定义的所有 UIComponent + HTML RenderKit Renderer 组合的 JavaServer Faces 组件标记。

【讨论】:

  • &lt;li class="menuitem"&gt;&lt;h:commandLink action = "#{loginBean.userName}"&gt;logout&lt;/h:commandLink&gt;&lt;/li&gt; 不起作用,仍然警告。如果我部署战争,则页面根本不会呈现。您能否详细说明如何在 xhtml 顶部声明标签?我编辑了起始帖子以显示顶部。
  • 我不知道你想用 h 标签做什么,但我知道 h 标签是 jsf 的一个特殊标签,它是用 xhtml 编写的。因此,我认为您将需要这两个链接。 xmlns:h="java.sun.com/jsf/html" xmlns:ui="java.sun.com/jsf/facelets"
  • 现在可以了!请将此评论添加为答案,我会将其标记为解决方案。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2018-01-26
  • 1970-01-01
  • 2018-02-24
  • 2016-12-07
  • 2016-02-15
  • 2016-03-05
  • 2021-02-23
  • 1970-01-01
相关资源
最近更新 更多