jsf - 使用 Facelets 模板导航不起作用

标签 jsf navigation facelets

使用 Facelets 时,我在导航方面遇到了一些问题。

我在 /WEB-INF 中有我的主模板:

<h:body>
    <div id="container">
        <div id="header">
            <ui:insert name="header">Header</ui:insert>
        </div>

        <div id="navigation">

            <a href="ram.xhtml">RAM</a>
            <a href="mobo.xhtml">Motherboard</a>
            <a href="video.xhtml">Video Card</a>
        </div>

        <div id="content">
            <ui:insert name ="content"></ui:insert>
        </div>

    </div>
</h:body> 

然后是 2 个看起来完全相同的模板客户端,index.xhtmlram.xhtml :
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                template="./WEB-INF/layoutTemplate.xhtml">

    <ui:define name="header">
       some text
    </ui:define>

    <ui:define name="content"> 
        some content
    </ui:define>


</ui:composition>

如果这些页面中的任何一个被设置为 web.xml 中的欢迎页面,它们使用 CSS 和所有内容正确呈现。但是,如果我尝试使用我得到的链接从一页导航到另一页

This XML file does not appear to have any style information associated with it. The document tree is shown below.



任何提示将不胜感激。

最佳答案

这意味着请求 URL(出现在浏览器地址栏中)与 FacesServlet 的 URL 模式不匹配。如 web.xml 中所定义.

那些链接

<a href="ram.xhtml">RAM</a>
<a href="mobo.xhtml">Motherboard</a>
<a href="video.xhtml">Video Card</a>

预计FacesServlet映射到 *.xhtml .但是如果它被映射到例如 *.jsf并将其更改为 *.xhtml由于某种原因不是一个选项(但我强烈推荐它),那么你需要修复链接
<a href="ram.jsf">RAM</a>
<a href="mobo.jsf">Motherboard</a>
<a href="video.jsf">Video Card</a>

或者,更好的是,只需使用 <h:link> .它将隐式附加正确的上下文路径和 FacesServlet映射:
<h:link value="RAM" outcome="ram" />
<h:link value="Motherboard" outcome="mobo" />
<h:link value="Video Card" outcome="video" />

也可以看看:
  • Communication in JSF 2.0 - Implicit navigation
  • 关于jsf - 使用 Facelets 模板导航不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8097020/

    相关文章:

    java - JSF 2.0 自定义消息

    javascript - 我可以在非 ajax primefaces 操作的文件响应后执行 javascript 吗?

    css - 如何从 p :breadCrumb 中删除背景

    Spring Boot + Primefaces - "Unrecognized Content Type"异常

    java - FacesMessage 不接受浏览器 clientID

    jsf 2.0 在 GET 参数验证失败后返回 http 错误代码

    jquery - 导航问题 jQuery CSS HTML

    asp.net-mvc - 为 MVC 创建 Web 导航帮助器类

    c# - MVVM 交换控件

    java - 为 PrimeFaces remoteCommand 生成并使用唯一名称