我可以使用HttpServletRequest从后端bean获取jsf中的当前页面的url。但有没有办法获得当前页面的标题?
答案 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();