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

时间:2012-06-22 20:28:21

标签: jsf facelets title managed-bean

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

1 个答案:

答案 0 :(得分:3)

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

反过来做得更好。无论如何,控制器感兴趣的变量都属于模型,而不是视图中的(硬编码)。将标题设为模型的属性并将其显示在EL中,如下所示:

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

您可以根据其URL或更好的页面映射,其JSF视图ID具有语法/path/filename.xhtml。如果您将它们保存在Map<String, Page>中,那么您应该能够获得页面标题,如下所示

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