【问题标题】:How to get the current page's title in jsf如何在jsf中获取当前页面的标题
【发布时间】:2012-06-22 20:28:20
【问题描述】:

我可以使用 HttpServletRequest 从后端 bean 获取 jsf 中当前页面的 url。但是有没有办法获得当前页面的标题呢?

【问题讨论】:

    标签: jsf facelets title managed-bean


    【解决方案1】:

    不,这不是直接可能的。它仅以 HTML <title> 标记的形式出现在与 HTTP 请求关联的 HTTP 响应中。理论上,您可以使用 XML 解析器解析视图文件并从中提取 <title> 元素,但这很笨拙。

    最好反其道而行之。控制器感兴趣的变量无论如何都属于模型,而不是(硬编码)在视图中。将 title 设为模型的属性并在 EL 中显示,如下所示:

    <title>#{page.title}</title>
    

    您可以根据其 URL 或更好的是其 JSF 视图 ID(其语法为 /path/filename.xhtml)来映射页面。如果你把它们放在Map&lt;String, Page&gt; 中,那么你应该可以得到如下页面的标题

    String title = pages.get(facesContext.getViewRoot().getViewId()).getTitle();
    

    【讨论】:

    • 哇,非常感谢。这正是我想要的。我认为第三种解决方案更适合我的情况,因为我正在开发一个无法每次都从模型中读取的面包屑。
    猜你喜欢
    • 2013-12-22
    • 2013-04-17
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 2012-03-02
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多