我可以使用 HttpServletRequest 从后端 bean 获取 jsf 中当前页面的 url。但是有没有办法获得当前页面的标题呢?
问问题
4501 次
1 回答
3
不,这不是直接可能的。它仅以 HTML<title>
标记的形式出现在与 HTTP 请求关联的 HTTP 响应中。理论上,您可以使用 XML 解析器解析视图文件并从中提取<title>
元素,但这很笨拙。
最好反过来做。控制器感兴趣的变量无论如何都属于模型,而不是(硬编码)在视图中。使标题成为模型的属性并在 EL 中显示,如下所示:
<title>#{page.title}</title>
您可以根据其 URL 或更好的是其具有语法的 JSF 视图 ID 来映射页面/path/filename.xhtml
。如果你把它们放在 a 中Map<String, Page>
,那么你应该能够得到页面的标题,如下所示
String title = pages.get(facesContext.getViewRoot().getViewId()).getTitle();
于 2012-06-22T20:33:31.123 回答