2009-12-29 79 views
0

我有一個簡單scrollableDataTable在JSFRichFaces的腳本/風格不加載

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 
<!-- RichFaces tag library declaration --> 
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> 
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> 
<f:view> 


<h:form> 
    <div id="contentvoll"> 
    <div id="contenttabelle"> 
    <rich:scrollableDataTable value="#{searchBean.searchList}" styleClass="fullTable" rowClasses="odd,even" var="elem" id="suchTable" 
    first="1" rows="50" rowKeyVar="activeRow" activeRowKey="#{searchBean.activeRowKey}" frozenColCount="1"> 
    <rich:column> 
     <f:facet name="header"> 
     <h:outputText value="Firmennummer"></h:outputText> 
     </f:facet> 
     <h:outputText value="#{elem.firmnr}"></h:outputText> 
    </rich:column> 
    <rich:column> 
     <f:facet name="header"> 
     <h:outputText value="Firmenname"></h:outputText> 
     </f:facet> 
     <h:outputText value="#{elem.fname1}"></h:outputText> 
    </rich:column> 
    </rich:scrollableDataTable> 
    </div> 
    <div class="update"></div> 
    </div> 
</h:form> 
</f:view> 

我覺得我做錯了什麼,因爲這將產生我只有一張桌子,我不能滾動,並且其中的cols是重疊。看起來像所需的JavaScript沒有加載。我到包括模板這個

<script src="/portal/faces/rfRes/org/ajax4jsf/framework.pack.js" type="text/javascript"></script> 
<script src="/portal/faces/rfRes/org/richfaces/ui.pack.js" type="text/javascript"></script> 

我的web.xml

<context-param> 
<param-name>org.ajax4jsf.RESOURCE_URI_PREFIX</param-name> 
<param-value>rfRes</param-value> 
</context-param> 


<filter> 
<display-name>RichFaces Filter</display-name> 
<filter-name>richfaces</filter-name> 
<filter-class>org.ajax4jsf.Filter</filter-class> 
</filter> 

<filter-mapping> 
<filter-name>richfaces</filter-name> 
<servlet-name>Faces Servlet</servlet-name> 
<dispatcher>REQUEST</dispatcher> 
<dispatcher>FORWARD</dispatcher> 
<dispatcher>INCLUDE</dispatcher> 
</filter-mapping> 

<!-- JSF configuration --> 
<context-param> 
<param-name>javax.faces.application.CONFIG_FILES</param-name> 
<param-value>/WEB-INF/faces-config.xml</param-value> 
</context-param> 
<context-param> 
<param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
<param-value>server</param-value> 
</context-param> 
<context-param> 
<param-name>org.richfaces.LoadStyleStrategy</param-name> 
<param-value>NONE</param-value> 
</context-param> 
<context-param> 
<param-name>org.richfaces.LoadScriptStrategy</param-name> 
<param-value>NONE</param-value> 
</context-param> 
<context-param> 
<param-name>javax.portlet.faces.renderPolicy</param-name> 
<param-value>NEVER_DELEGATE</param-value> 
</context-param> 
<!-- Faces Servlet --> 
<servlet> 
<servlet-name>Faces Servlet</servlet-name> 
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
<load-on-startup> 1 </load-on-startup> 
</servlet> 

<!-- Faces Servlet Mapping --> 
<servlet-mapping> 
<servlet-name>Faces Servlet</servlet-name> 
<url-pattern>/faces/*</url-pattern> 
</servlet-mapping> 

有誰也面臨同樣的問題?

+0

解決:問題是樣式未加載,這導致重疊和不觸發滾動時發生的ajax事件。 – onigunn 2009-12-29 08:28:14

+0

因此,您已將建議的loadStyleStrategy更改爲ALL?或者用另一種方法? – Bozho 2009-12-29 08:41:17

+0

我已經將loadStyleStrategy更改爲ALL,但將loadScriptStrategy設置爲NONE - 我主張在自己的模板中包含腳本。 – onigunn 2009-12-29 08:56:32

回答

2

我建議使用:

<context-param> 
    <param-name>org.richfaces.LoadStyleStrategy</param-name> 
    <param-value>ALL</param-value> 
</context-param> 
<context-param> 
    <param-name>org.richfaces.LoadScriptStrategy</param-name> 
    <param-value>ALL</param-value> 
</context-param> 

這會自動加載一切。

但是,如果你不希望它(出於某種原因),你應該使用(而不是<script>):因爲它增加了一個

<a4j:loadScript src="resource:///org/ajax4jsf/framework.pack.js" /> 

(或<a4j:loadStyle />對CSS)

。 jsp/.jsf後綴,但在常見情況下,您不應該這樣使用它。

+1

將上下文參數更改爲全部並不令人遺憾。無論如何,framework.pack.js被加載。 – onigunn 2009-12-29 08:05:34

+0

那麼,現在有什麼問題?你有沒有檢查具體的JS錯誤的Firefox錯誤控制檯? – Bozho 2009-12-29 08:27:34

+0

查看我的更新Bozho。非常感謝。 – onigunn 2009-12-29 08:29:33