jsf - jsf中如何获取当前页面的标题

标签 jsf facelets title managed-bean

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

最佳答案

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

最好反过来做。 Controller 感兴趣的变量无论如何都属于模型,而不是(硬编码)在 View 中。将 title 设置为模型的属性并在 EL 中显示它,如下所示:

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

您可以根据页面的 URL 进行页面映射,或者更好的是,根据其 JSF View ID 进行映射,其语法为 /path/filename.xhtml 。如果你把它们放在 Map<String, Page> 中,那么你应该能够得到页面的标题,如下

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

关于jsf - jsf中如何获取当前页面的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11163636/

相关文章:

windows - wxWidgets 和 WM_NCHITTEST

java - ServletException - 未找到属性?这是怎么回事?

html - html页面保留字符串样式

JSF 1.2 facelets 自定义组件

jsf - 如何在 Facelets 模板中引用 CSS/JS/图片资源?

jsf - 如何确保JSF taglib子组件的id不同?

jsf - jsf中的spring acl

java - 需要 JSF outPutText 的特定 If Else 构造

php - WordPress Yoast 插件更新 seo 标题

android - 如何实现LinearLayout标题/标签