如何处理 JSF 模板中的特定名称空间声明
我有一个所有其他页面都使用的主模板。
想象一下,有些页面正在使用 PrimeFaces 组件,有些页面正在使用 Facelets。目前,我必须在主模板中声明所有命名空间,如下所示:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
这意味着没有 PrimeFaces 组件的页面仍将具有 PrimeFaces 命名空间声明。这是个好主意吗?
我们如何将非公共命名空间从主模板中删除并在特定页面中声明它?
I have a master template that are used by all the other pages.
Imagine that I some of pages that are using PrimeFaces components, and some are using facelets. At the moment I have to declare all the namespaces in the master template like this:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
This means that the pages without PrimeFaces components will still have the PrimeFaces namespace declaration. Is this an good idea?
How can we leave the non-common namespace out from the master template and declare it in the specific pages?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这根本没有坏处。 Facelets 在渲染 HTML 时无论如何都会修剪它们。如果当前模板中的任何地方都没有使用名称空间声明,则可以将其保留。请注意,命名空间声明仅适用于当前模板,不适用于包含/修饰的模板。
您可以这样做。这不应该构成问题。
This doesn't harm at all. Facelets will trim them out anyway while rendering HTML. You can leave the namespace declarations away if it's not been used anywhere in the current template. Note that the namespace declarations only applies to the current template, not to the included/decorated templates.
You can just do so. That should not form a problem.