将 <a role> 放入 Facelets 组合中会显示消息 "Attribute role is not allowed here"
Putting <a role> in Facelets composition shows message "Attribute role is not allowed here"
我刚刚尝试使用 bootstrap 设置我的 jsf 项目。一切正常,除了当我添加一个包含“role
”属性的 bootstrap 模板时。我收到一条消息说 此处不允许属性角色
我不擅长设计,我更关注后端,所以我真的需要使用 bootstrap。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<ui:composition>
<div class="row">
<div class="col-sm-6 col-md-4">
<div class="thumbnail">
<img src="..." alt="..."/>
<div class="caption">
<h3>Thumbnail label</h3>
<p>...</p>
<p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a></p>
</div>
</div>
</div>
</div>
</ui:composition>
</html>
我不明白为什么当所有其他标签和属性都被识别时它不读取该属性。
有什么可能的解决办法吗?
谢谢。
您的文档类型有误。 role
属性是 HTML5 (ARIA) 的一部分,而不是 XHTML 1.0.
相应地修正文档类型。
<!DOCTYPE html>
您的编辑器 (IDE) 正在根据文档类型验证文档。这不是 JSF 也不是 Bootstrap 特定的问题。这与基本HTML有关。
顺便说一句,在 Facelets 组合中,您实际上并不严格需要 XML prolog 或 doctype。 Facelets 无论如何都会忽略这些。下面的内容应该可以正常工作:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
<!-- Content here -->
</ui:composition>
另请参阅:
- How should a <!DOCTYPE> section look in JSF? HTML5 or XHTML?
- JavaServer Faces 2.2 and HTML5 support, why is XHTML still being used
- How to include another XHTML in XHTML using JSF 2.0 Facelets?
我刚刚尝试使用 bootstrap 设置我的 jsf 项目。一切正常,除了当我添加一个包含“role
”属性的 bootstrap 模板时。我收到一条消息说 此处不允许属性角色
我不擅长设计,我更关注后端,所以我真的需要使用 bootstrap。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<ui:composition>
<div class="row">
<div class="col-sm-6 col-md-4">
<div class="thumbnail">
<img src="..." alt="..."/>
<div class="caption">
<h3>Thumbnail label</h3>
<p>...</p>
<p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a></p>
</div>
</div>
</div>
</div>
</ui:composition>
</html>
我不明白为什么当所有其他标签和属性都被识别时它不读取该属性。
有什么可能的解决办法吗?
谢谢。
您的文档类型有误。 role
属性是 HTML5 (ARIA) 的一部分,而不是 XHTML 1.0.
相应地修正文档类型。
<!DOCTYPE html>
您的编辑器 (IDE) 正在根据文档类型验证文档。这不是 JSF 也不是 Bootstrap 特定的问题。这与基本HTML有关。
顺便说一句,在 Facelets 组合中,您实际上并不严格需要 XML prolog 或 doctype。 Facelets 无论如何都会忽略这些。下面的内容应该可以正常工作:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
>
<!-- Content here -->
</ui:composition>
另请参阅:
- How should a <!DOCTYPE> section look in JSF? HTML5 or XHTML?
- JavaServer Faces 2.2 and HTML5 support, why is XHTML still being used
- How to include another XHTML in XHTML using JSF 2.0 Facelets?