【问题标题】:Jsf 2.0 Custom TagJsf 2.0 自定义标签
【发布时间】:2025-12-06 02:40:01
【问题描述】:

当我从 web.xml 中删除 MyFaces-2.0 条目时,我在项目的每个页面上都收到以下错误。我的项目是使用 JSF 2.0 创建的。

错误

一个或多个资源的目标是“头”,但没有“头” 组件已在视图中定义。

web.xml

<context-param>
    <param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name>
    <param-value>MyFaces-2.0</param-value>
</context-param>

删除该条目后,我的自定义标记运行。如果我再把它放在 web.xml 中,那么编译器就不会去组件类。

【问题讨论】:

    标签: java jsf jsf-2


    【解决方案1】:

    正如您收到的消息所说,您的视图中没有头部组件(在您的 Facelet 上)。其他组件需要这样的组件,例如想将脚本和css资源注入头部。

    补救方法是简单地在你的 Facelet 上添加这个组件,例如:

    <!DOCTYPE html>
    <html lang="en"
        xmlns="http://www.w3.org/1999/xhtml"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:h="http://java.sun.com/jsf/html"  
    >
        <!-- The head component that was missing -->
        <h:head/>
    
        <h:body>
            <!-- Other components here -->
        </h:body>
    </html>
    

    【讨论】:

    • 页面中已经存在头部组件。仍然存在同样的问题
    • 头部组件s?你应该只有一个;)
    最近更新 更多