jsf - 将元数据包含到 JSF
问题描述
我有一个 JSF 页面,其中包含<head>...</head>
另一个页面。基本上它看起来像这样:
<ui:include src="/path/head.xhtml"/>
<h:body>
...
</h:body>
我想为<meta name="description" content="Unique content">
每个使用 <ui:include src="/path/head.xhtml"/>
. 我有两个想法:
- 我可以放在
<meta name="description".../>
首页并在包含页面上覆盖它吗? - 或者也许我可以以某种方式把它
<meta.../>
从包含页面放到头部?
解决方案
几种方式:
<ui:insert>
不使用并覆盖它name
的主体:<ui:include>
/WEB-INF/includes/head.xhtml
<h:head> ... <ui:insert> <meta name="description" content="Default description" /> </ui:insert> ... </h:head>
/page.xhtml
<ui:include src="/WEB-INF/includes/head.xhtml"> <meta name="description" content="Overridden description" /> </ui:include>
使用
<ui:insert>
withname
和使用<ui:decorate><ui:define>
代替<ui:include>
:/WEB-INF/includes/head.xhtml
<h:head> ... <ui:insert name="description"> <meta name="description" content="Default description" /> </ui:insert> ... </h:head>
/page.xhtml
<ui:decorate template="/WEB-INF/includes/head.xhtml"> <ui:define name="description"> <meta name="description" content="Overridden description" /> </ui:define> </ui:decorate>
当您已经有默认描述时,只需使用
<ui:param>
元内容来保持代码 DRY:/WEB-INF/includes/head.xhtml
<h:head> ... <meta name="description" content="#{empty description ? 'Default description' : description}" /> ... </h:head>
/page.xhtml
<ui:include src="/WEB-INF/includes/head.xhtml"> <ui:param name="description" value="Overridden description" /> </ui:include>
也可以看看:
推荐阅读
- java - 如何控制动态改造2响应对象
- python - 从 C++ 调用 Python 脚本以持续流式传输数据
- python - 在MATLAB中计算Python数值向量的平均值
- scikit-learn - 如何导入sklearn?
- php - 在 Apache 太阳能搜索中未获得预期结果
- azure - 带有 Azure SQL 数据库 MFA 的 Office 365 MFA
- sql - 我想将 SQL 数据库迁移到 MongoDB 那么我应该如何维护关系数据?
- c# - 我应该加入所有表以准备对象数据还是为对象中的单独属性调用单独的 SP?
- java - 如何在 DynamoDB 中禁用表缓存?
- laravel - 在 Laravel 5.2 中,为什么自定义验证器无法获取已更改字段的正确值?