[richfaces-issues] [JBoss JIRA] Commented: (RF-2351) LoadStyleStrategy does not work in portlet/facelet environment.

Dirk Pitt (JIRA) jira-events at lists.jboss.org
Mon Dec 1 03:47:37 EST 2008


    [ https://jira.jboss.org/jira/browse/RF-2351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12440533#action_12440533 ] 

Dirk Pitt commented on RF-2351:
-------------------------------

Actually this problem is solved, solution is availible in SNAPSHOT repository 

1.0.0-SNAPSHOT version portletbridge contains the solution at the moment.

> LoadStyleStrategy does not work in portlet/facelet environment.
> ---------------------------------------------------------------
>
>                 Key: RF-2351
>                 URL: https://jira.jboss.org/jira/browse/RF-2351
>             Project: RichFaces
>          Issue Type: Bug
>          Components: portal
>    Affects Versions: 3.1.3, 3.1.4
>         Environment: JBoss Portal 2.6.3-GA / JBoss [Trinity] 4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)
> Java version: 1.5.0_11,Sun Microsystems Inc.
> Java VM: Java HotSpot(TM) Client VM 1.5.0_11-b03,Sun Microsystems Inc.
> OS-System: Windows 2000 5.0,x86 
>            Reporter: Andreas Chlupacek
>            Assignee: Alexander Smirnov
>
> A JSR-168 portlet project using RichFaces 3.1.3-GA and facelets was deployed on JBoss Portal 2.6.3. In the project's web.xml, the context-parameter org.richfaces.LoadStyleStrategy was specified. But regardless of the value assigned to this parameter (DEFAULT, NONE, or ALL), the generated markup always looks the same: The document will always contain references to the individual per-component xcss resources. Neither NONE nor ALL seem to make a difference. This behaviour was observed with 3.1.3-GA as well as with 3.1.4-GA and 3.1.4-SR1.
> Steps to reproduce:
> ===================
> Set up a portlet application with the following artefacts:
> web.xml:
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
> 	<!-- These parameters prevent loading separate style/javascript for each Richfaces components
> 		It must be used together with a portal-wide configuration, see jboss-portlet.xml -->
> 	<context-param>
> 		<param-name>org.richfaces.LoadStyleStrategy</param-name>
> 		<param-value>NONE</param-value>
> 	</context-param> 
> 	<context-param>
> 		<param-name>org.ajax4jsf.COMPRESS_STYLE</param-name>
> 		<param-value>false</param-value>
> 	</context-param>	
> 	<context-param>
> 		<param-name>org.richfaces.LoadScriptStrategy</param-name>
> 		<param-value>NONE</param-value>
> 	</context-param> 
> 	<context-param>
> 		<param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
> 		<param-value>false</param-value>
> 	</context-param>
> 	<context-param>
> 		<param-name>org.ajax4jsf.RESOURCE_URI_PREFIX</param-name>
> 		<param-value>rfRes</param-value>
> 	</context-param>
> 	<!-- This is optional parameters for a facelets based application -->
> 	<context-param>
> 		<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
> 		<param-value>
> 			org.ajax4jsf.portlet.application.FaceletPortletViewHandler
> 		</param-value>
> 	</context-param>
> 	<context-param>
> 		<param-name>javax.portlet.faces.renderPolicy</param-name>
> 		<param-value>ALWAYS_DELEGATE</param-value>
> 	</context-param>
> 	<context-param>
> 		<param-name>facelets.DEVELOPMENT</param-name>
> 		<param-value>true</param-value>
> 	</context-param>
> 	<context-param>
> 		<param-name>facelets.SKIP_COMMENTS</param-name>
> 		<param-value>true</param-value>
> 	</context-param>
> 	<context-param>
> 		<param-name>facelets.VIEW_MAPPINGS</param-name>
> 		<param-value>*.xhtml</param-value>
> 	</context-param>
> 	<context-param>
> 		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
> 		<param-value>server</param-value>
> 	</context-param>
> 	<filter>
> 		<display-name>Ajax4jsf Filter</display-name>
> 		<filter-name>ajax4jsf</filter-name>
> 		<filter-class>org.ajax4jsf.Filter</filter-class>
> 	</filter>
> 	<filter-mapping>
> 		<filter-name>ajax4jsf</filter-name>
> 		<servlet-name>FacesServlet</servlet-name>
> 		<dispatcher>FORWARD</dispatcher>
> 		<dispatcher>REQUEST</dispatcher>
> 		<dispatcher>INCLUDE</dispatcher>
> 	</filter-mapping>
> 	<servlet>
> 		<servlet-name>FacesServlet</servlet-name>
> 		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
> 		<load-on-startup>1</load-on-startup>
> 	</servlet>
> 	<servlet-mapping>
> 		<servlet-name>FacesServlet</servlet-name>
> 		<url-pattern>/faces/*</url-pattern>
> 	</servlet-mapping>
> 	<mime-mapping>
> 		<extension>svg</extension>
> 		<mime-type>image/svg+xml</mime-type>
> 	</mime-mapping>
> 	<login-config>
> 		<auth-method>BASIC</auth-method>
> 	</login-config>
> </web-app>
> faces-config.xml:
> <?xml version="1.0"?>
> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
>                               "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
> <faces-config>
>  <!-- Richfaces configuration -->
>  <application>
>   <view-handler>org.ajax4jsf.portlet.application.PortletViewHandler</view-handler>
>   <state-manager>org.ajax4jsf.portlet.application.PortalStateManager</state-manager>
>  </application>
>  <factory>
>   <faces-context-factory>org.ajax4jsf.portlet.context.FacesContextFactoryImpl</faces-context-factory>
>  </factory>
> </faces-config>
> portlet.xml:
> <portlet-app version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>   xsi:schemaLocation="http://java.sun.com/xml/ns/portlet"
>   xmlns="http://java.sun.com/xml/ns/portlet">
>   <portlet>
>     <portlet-name>richFacesPortlet</portlet-name>
>     <portlet-class>javax.portlet.faces.GenericFacesPortlet</portlet-class>
>     <init-param>
>       <name>javax.portlet.faces.defaultViewId.view</name>
>       <value>/richFacesPortlet/view.xhtml</value>
>     </init-param>
>     <expiration-cache>-0</expiration-cache>
>     <portlet-info>
>        <title>RichFacesPortlet</title>
>     </portlet-info>
>     <supports>
>       <mime-type>text/html</mime-type>
>       <portlet-mode>VIEW</portlet-mode>
>     </supports>
>   </portlet>  
> </portlet-app>
> jboss-portlet.xml:
> <?xml version="1.0"?>
> <!DOCTYPE portlet-app PUBLIC
>    "-//JBoss Portal//DTD JBoss Portlet 2.6//EN"
>    "http://www.jboss.org/portal/dtd/jboss-portlet_2_6.dtd">
> <portlet-app>
> 	<portlet>
> 		<portlet-name>richFacesPortlet</portlet-name>
> 		<header-content>
>            <script src="/faces/rfRes/org/ajax4jsf/framework.pack.js" type="text/javascript" ></script>
>            <script src="/faces/rfRes/org/richfaces/ui.pack.js" type="text/javascript" ></script>
>            <link rel="stylesheet" type="text/css" href="/css/myStyles.css" /> 
> 		</header-content>
> 	</portlet>
> </portlet-app>
> portlet-instances.xml:
> <?xml version="1.0" encoding="utf-8" standalone="yes"?>
> <deployments>	
> 	<deployment>
> 		<instance>
> 			<instance-id>RichFacesPortletInstance</instance-id>
> 			<portlet-ref>richFacesPortlet</portlet-ref>
> 		</instance>
> 	</deployment>		
> </deployments>
> portlet-object.xml:
> <?xml version="1.0" encoding="UTF-8"?>
> <deployments>		
> 	<deployment>
> 		<if-exists>overwrite</if-exists>
> 		<parent-ref>default.default</parent-ref>
> 		<window>
> 			<window-name>richFacesPortletWindow</window-name>
> 			<instance-ref>RichFacesPortletInstance</instance-ref>
> 			<default>true</default>
> 			<region>center</region>
> 			<height>0</height>
> 		</window>
> 	</deployment>
> </deployments>
> view.xhtml:
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <a4j:portlet xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core"
> 	xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html"
> 	xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich">
> 	<h:form>
> 		<h:panelGrid columns="1" border="1" >
> 			<!-- <h:inputText value="#{bean.text}">
> 				<a4j:support event="onkeyup" reRender="text,input" />
> 			</h:inputText>
> 			<h:outputText id="text" value="#{bean.text}" />
> 			<h:commandButton action="#{bean.click}" value="Click"></h:commandButton>
> 			<h:outputText id="counter" value="Click count: #{bean.counter}" /> -->
> 			<rich:panel headerClass="panelHead" bodyClass="panelBody">
> 				<f:facet name="header">Test Panel with header and body Class</f:facet>
> 			                
> 			    Lorem ipsum dolor sit amet, <br />
> 			    consetetur sadipscing elitr, <br />
> 			    sed diam nonumy eirmod tempor <br />
> 			    invidunt ut labore et dolore <br />
> 			    magna aliquyam erat, sed diam <br />
> 			    voluptua. <br />
> 				<br />
> 			</rich:panel>
> 			
> 		</h:panelGrid>
> 	</h:form>
> </a4j:portlet>
> /css/myStyles.css:
> .panelHead {
> 	padding: 0px;
> 	background-color: #FF0000;
> 	background-image: none;
> 	font-weight: bold;
> 	font-size: 12px;
> 	color: #FFFFFF;
> 	vertical-align: center;
> }
> .panelBody {
> 	padding: 0px;
> 	font-size: 18px;
> }
> Observed behaviour:
> ===================
> The setting for LoadStyleStrategy seems to be ignored in a portlet/facelet application. Neither NONE nor ALL make a difference for the references to the CSS files. They are always referenced per-component, in the middle of the document's markup. This leads to the effect that custom CSS classes (specified for example via headerClass or styleClass attributes) are partially overwritten by RichFaces' component-specific styles. In the example above, none of the attributes of .panelHead or .paneyBody will ever have any effect since they are superseded by .dr-pnl-h, .dr-pnl-b, .panelBody and .dr-pnl.
> This happens regardless of the RichFaces version or combination of RichFaces and Portletbridge JARs (3.1.3-GA, 3.1.4-GA and 3.1.4-SR1). Any combination of LoadStyleStrategy and COMPRESS_STYLE attributes was tested.
> Expected behaviour:
> ===================
> The attributes ALL and NONE should cause loading of no stylesheets at all or a single consolidated CSS, respectively.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the richfaces-issues mailing list