gpt4 book ai didi

jsf - 如何不在我的所有 JSF 自定义组件上指定 <title>

转载 作者:行者123 更新时间:2023-12-03 04:21:24 27 4
gpt4 key购买 nike

关注 Oracle(及其他)documentation ,我的所有 JSF 组件如下所示:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:composite="http://xmlns.jcp.org/jsf/composite"
>
<composite:interface>
...
</composite:interface>
<composite:implementation>
...
</composite:implementation>
</html>

当然,它可以正常工作,但SonarCube不同意这一点(规则详细信息here):

"title" should be present in all pages

有几个解决方案:

  • 要求 Sonar 忽略这些问题,
  • 添加<head><title>标签,

但这些看起来像是解决方法,我想设置一个永久的解决方案。

最佳答案

DOCTYPEhtml仅当您在可视化页面设计器中创作 Facelets 模板时,标签才是必需的。 Java EE 教程的作者可能认为这类开发人员将成为 JSF 用户的最大群体。然而,这毕竟是不真实的。事实上,这些可视化页面设计者会生成糟糕且无语义的源代码,其中充满了不良的 HTML/CSS 实践,之后必须对其进行清理。

当您在纯文本编辑器中创作 Facelets 模板时(当然,带有语法突出显示),那么您不一定需要这些 DOCTYPEhtml模板组合物和复合 Material 中的标签。 <ui:composition> 的根元素和<ui:component>已经足够了。

因此,根据您的具体情况,只需使用:

<ui:component 
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:cc="http://xmlns.jcp.org/jsf/composite"
>
<cc:interface>
...
</cc:interface>
<cc:implementation>
...
</cc:implementation>
</ui:component>

然后 Sonar 就不会再错误地将其解释为“普通”HTML 页面。

另请参阅:

关于jsf - 如何不在我的所有 JSF 自定义组件上指定 &lt;title&gt;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50761099/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com