我们正在尝试使用JSF 2.2中的<f:view contracts="xxx" />
特性,与许多同步契约,如"contract1,contract2"。
在我们的合同1中,我们有一个文件style1.css
,在合同2中,我们有一个文件style2.css
。我们通过<h:outputStylesheet />
标签将两者都包含在视图中。
如果我在视图中只使用contracts="contract1"
,那么JSF的日志就会比style2.css
少,这是合乎逻辑的。
如果我使用contracts="contract1,contract2"
, JSF会同时导入style1.css
和style2.css
,但是url错误(它使用&con=contract1
而不是&con=contract2
来获取资源)。
是bug吗?这正常吗?我找不到任何关于同时使用多个合同的文档
这是正常的行为,正如我在Apress Pro JSF和HTML 5教科书中发现的那样。摘录:
可以将多个契约映射到单个映射。在这种情况下,它将依次遍历每个契约以查找所需的模板。一旦找到一个模板,它将停止处理其他模板。
至于为什么是允许的,如果它所要做的就是选择第一个合适的选项,我同意你的观点,这可能是毫无意义的。
参考:- Apress Pro JSF和HTML 5