我可以使用 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/