POST 和 GET 中的 Omnifaces CombinedResourceHandler 命令
Omnifaces CombinedResourceHandler order in POST and GET
我单独使用 CombinedResourceHandler
<application>
<resource-handler>org.omnifaces.resourcehandler.CombinedResourceHandler</resource-handler>
</application>
有一些排除的资源:
<context-param>
<param-name>org.omnifaces.COMBINED_RESOURCE_HANDLER_EXCLUDED_RESOURCES</param-name>
<param-value>
font-awesome/4.3.0/css/font-awesome.min.css
</param-value>
</context-param>
我有这个简单的页面:
<f:view contentType="text/html" >
<h:head>
<h:outputStylesheet library="primefaces-bootstrap" name="theme.css" />
<h:outputStylesheet name="css/icons/icons.css"/>
<h:outputStylesheet name="font-awesome/4.3.0/css/font-awesome.min.css" />
</h:head>
<h:body>
<o:form>
<o:messages></o:messages>
<h:inputText required="true" id='somefield'/>
<h:commandButton></h:commandButton>
</o:form>
</h:body>
</f:view>
当请求为 GET 时,我有这个 css 订单(生产模式):
<link type="text/css" rel="stylesheet" href="/travelc/javax.faces.resource/theme.css.xhtml?ln=primefaces-bootstrap"/>
<link rel="stylesheet" type="text/css" href="/travelc/javax.faces.resource/eNorKMrMTU1LTE4t1k3Kzy8pLilKLLAqyUjNTdVLLi6uAWL9zOT8PCgJEgMA_HITwQ.css.xhtml?ln=omnifaces.combined&v=1441782365350"/>
<link rel="stylesheet" type="text/css" href="/travelc/javax.faces.resource/font-awesome/4.3.0/css/font-awesome.min.css.xhtml"/>
什么时候 POST:
<link type="text/css" rel="stylesheet" href="/travelc/javax.faces.resource/theme.css.xhtml?ln=primefaces-bootstrap"/>
<link rel="stylesheet" type="text/css" href="/travelc/javax.faces.resource/font-awesome/4.3.0/css/font-awesome.min.css.xhtml"/>
<link rel="stylesheet" type="text/css" href="/travelc/javax.faces.resource/eNorKMrMTU1LTE4t1k3Kzy8pLilKLLAqyUjNTdVLLi6uAWL9zOT8PCgJEgMA_HITwQ.css.xhtml?ln=omnifaces.combined&v=1441782365350"/>
这会破坏页面。我怎样才能防止这种情况发生?
我正在使用 omnifaces 最新快照和 myfaces 2.2.8
我转载了。 MyFaces 在这里发挥作用。它适用于 Mojarra。
在回发时,组合资源仍然存在于组件树中,必须提取并重新组合(只是为了涵盖任何资源在回发期间有条件 added/removed 的情况)。但是,由于逻辑错误,组合资源是新创建的并添加到末尾,而不是重复使用之前找到它的组合资源位置,确认您看到的症状。如果您将资源排除在组合之外,导致存在多个资源,则该错误只会引起注意。它在 Mojarra 中工作,因为组件 ID 相同。
逻辑错误已根据 this commit 修复,并根据今天最新的 OmniFaces 2.2 快照提供。
我单独使用 CombinedResourceHandler
<application>
<resource-handler>org.omnifaces.resourcehandler.CombinedResourceHandler</resource-handler>
</application>
有一些排除的资源:
<context-param>
<param-name>org.omnifaces.COMBINED_RESOURCE_HANDLER_EXCLUDED_RESOURCES</param-name>
<param-value>
font-awesome/4.3.0/css/font-awesome.min.css
</param-value>
</context-param>
我有这个简单的页面:
<f:view contentType="text/html" >
<h:head>
<h:outputStylesheet library="primefaces-bootstrap" name="theme.css" />
<h:outputStylesheet name="css/icons/icons.css"/>
<h:outputStylesheet name="font-awesome/4.3.0/css/font-awesome.min.css" />
</h:head>
<h:body>
<o:form>
<o:messages></o:messages>
<h:inputText required="true" id='somefield'/>
<h:commandButton></h:commandButton>
</o:form>
</h:body>
</f:view>
当请求为 GET 时,我有这个 css 订单(生产模式):
<link type="text/css" rel="stylesheet" href="/travelc/javax.faces.resource/theme.css.xhtml?ln=primefaces-bootstrap"/>
<link rel="stylesheet" type="text/css" href="/travelc/javax.faces.resource/eNorKMrMTU1LTE4t1k3Kzy8pLilKLLAqyUjNTdVLLi6uAWL9zOT8PCgJEgMA_HITwQ.css.xhtml?ln=omnifaces.combined&v=1441782365350"/>
<link rel="stylesheet" type="text/css" href="/travelc/javax.faces.resource/font-awesome/4.3.0/css/font-awesome.min.css.xhtml"/>
什么时候 POST:
<link type="text/css" rel="stylesheet" href="/travelc/javax.faces.resource/theme.css.xhtml?ln=primefaces-bootstrap"/>
<link rel="stylesheet" type="text/css" href="/travelc/javax.faces.resource/font-awesome/4.3.0/css/font-awesome.min.css.xhtml"/>
<link rel="stylesheet" type="text/css" href="/travelc/javax.faces.resource/eNorKMrMTU1LTE4t1k3Kzy8pLilKLLAqyUjNTdVLLi6uAWL9zOT8PCgJEgMA_HITwQ.css.xhtml?ln=omnifaces.combined&v=1441782365350"/>
这会破坏页面。我怎样才能防止这种情况发生?
我正在使用 omnifaces 最新快照和 myfaces 2.2.8
我转载了。 MyFaces 在这里发挥作用。它适用于 Mojarra。
在回发时,组合资源仍然存在于组件树中,必须提取并重新组合(只是为了涵盖任何资源在回发期间有条件 added/removed 的情况)。但是,由于逻辑错误,组合资源是新创建的并添加到末尾,而不是重复使用之前找到它的组合资源位置,确认您看到的症状。如果您将资源排除在组合之外,导致存在多个资源,则该错误只会引起注意。它在 Mojarra 中工作,因为组件 ID 相同。
逻辑错误已根据 this commit 修复,并根据今天最新的 OmniFaces 2.2 快照提供。