[jboss-user] [JBoss Seam] - Re: Exadel, JBoss and Seam

tony.herstell@gmail.com do-not-reply at jboss.com
Mon Mar 5 18:35:19 EST 2007


Please tell us what to add, where, to get RichFaces to work with Seam.

With IceFaces it was a case of just dropping jars into EAR and updating the META-INF/application.xml

  | 	<!-- Icefaces -->
  | 	<module>
  | 		<java>icefaces.jar</java>
  | 	</module>
  | 
  | 	<module>
  | 		<java>icefaces-comps.jar</java>
  | 	</module>
  | 
  | 	<module>
  | 		<java>el-api.jar</java>
  | 	</module>
  | 
  | 	<module>
  | 		<java>el-ri.jar</java>
  | 	</module>
  | 
  | 	<module>
  | 		<java>icefaces-facelets.jar</java>
  | 	</module>
  | 
  | 	<module>
  | 		<java>commons-fileupload.jar</java>
  | 	</module>
  | 


Referencing the above jars into the War (as remote jars)

  |    icefaces.jar, icefaces-comps.jar and icefaces-facelets.jar
  | 

Lobbing in the icefaces-component.tld in the WEB-INF (for some reason I haven't fathomed yet)

Referencing icefaces in the .xhtml pages

  | 	xmlns:ice="http://www.icesoft.com/icefaces/component"
  | 

Adding the backing bean support

  | 	/*
  | 	 * GUI Support methods
  | 	 */
  | 
  | 	public String applyFilter() {
  | 		log.info("> applyFilter");
  | 		/*
  | 		 * Set the model to to the results returned from the constraints
  | 		 */
  | 		log.info("Finding all the required organisations returned from the constraints" + organisation);
  | 		applyQueryBasedOnSearchCriteria();
  | 		log.info("< applyFilter");
  | 		return null;
  | 	}
  | 	
  | 	/**
  | 	 * The panel stack is controlled by a group of radio buttons and their state
  | 	 * changes call this method to register the newly selected panel.
  | 	 * 
  | 	 * @param event
  | 	 *            new value of event contains the new selected panel name.
  | 	 */
  | 	public void selectedSearchCriteriaPanelChanged(ValueChangeEvent event) {
  | 		log.info("> selectedSearchCriteriaPanelChanged");
  | 		log.info("applyingSearchCriteriaChange (All/Filtered)");
  | 		if (event.getNewValue() != null) {
  | 			selectedSearchCriteriaPanel = event.getNewValue().toString();
  | 			log.info(selectedSearchCriteriaPanel + " selected");
  | 			if (selectedSearchCriteriaPanel.equals(ALL_OPTION)) {
  | 				applyAllQuery();
  | 			} else {
  | 				applyQueryBasedOnSearchCriteria();
  | 			}
  | 		} else {
  | 			log.info("null new event passed in. Error!");
  | 		}
  | 		log.info("< selectedSearchCriteriaPanelChanged");
  | 	}
  | 
  | 	
  | 	private void sort() {
  | 		Comparator organisationComparator = new Comparator() {
  | 
  | 			public int compare(Object o1, Object o2) {
  | 				Organisation organisation1 = (Organisation)o1;
  | 				Organisation organisation2 = (Organisation)o2;
  | 				
  |                 if (sortColumn == null) {
  |                     return 0;
  |                 }
  |                 
  |                 if (sortColumn.equals(messages.get("column_title_name"))) {
  |                 	// Surname
  |                 	if (!ascending) {
  |                 		return (organisation1.getName().compareTo(organisation2.getName()));
  |                 	} else {
  |                 		return (organisation2.getName().compareTo(organisation1.getName()));
  |                 	}
  |                 } else if (sortColumn.equals(messages.get("column_title_physical"))) {
  |                 	// Firstname
  |                 	if (ascending) {
  |                 		if (organisation1.getPhysical() == true && organisation2.getPhysical() == false) {
  |                 			return 1;
  |                 		} else if (organisation1.getPhysical() == organisation2.getPhysical()) {
  |                 			return 0;
  |                 		} else if (organisation1.getPhysical() == false && organisation2.getPhysical() == true) {
  |                 			return -1;
  |                 		}
  |                 	} else {
  |                 		if (organisation2.getPhysical() == true && organisation1.getPhysical() == false) {
  |                 			return 1;
  |                 		} else if (organisation2.getPhysical() == organisation1.getPhysical()) {
  |                 			return 0;
  |                 		} else if (organisation2.getPhysical() == false && organisation1.getPhysical() == true) {
  |                 			return -1;
  |                 		}
  |                 	}
  |                 } else if (sortColumn.equals(messages.get("column_title_creation_date"))) {
  |                 	// Creation Date
  |                 	if (ascending) {
  |                 		return (organisation1.getDates().getCreationDate().compareTo(organisation2.getDates().getCreationDate()));
  |                 	} else {
  |                 		return (organisation2.getDates().getCreationDate().compareTo(organisation1.getDates().getCreationDate()));
  |                 	}
  |                 }
  | 				return 0;
  | 			}
  | 		};
  | 
  | 		if (organisations != null) {
  | 			Arrays.sort(organisations, organisationComparator);
  | 		}
  | 	}
  | 
  | 

Some "intersting" xml in web.xml page.

  |     <context-param>
  |        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  |         <param-value>client</param-value>
  |     </context-param>
  | 
  |     <context-param>
  |         <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
  |         <param-value>.xhtml</param-value>
  |     </context-param>
  | 
  |     <context-param>
  |         <param-name>facelets.DEVELOPMENT</param-name>
  |         <param-value>true</param-value>
  |     </context-param>
  | 
  |     <context-param>
  |         <param-name>com.icesoft.faces.actionURLSuffix</param-name>
  |         <param-value>.seam</param-value>
  |     </context-param>
  | 
  |     <context-param>
  |         <param-name>com.icesoft.faces.synchronousUpdate</param-name>
  |         <param-value>true</param-value>
  |     </context-param>
  | 
  |     <servlet>
  |         <servlet-name>Faces Servlet</servlet-name>
  |         <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  |         <load-on-startup>1</load-on-startup>
  |     </servlet>
  |     
  |     <!--  Added as trail from http://support.icesoft.com/jive/servlet/KbServlet/download/623-102-847/SeamKBArticle.txt
  |     <context-param>
  |         <param-name>com.icesoft.faces.doJSFStateManagement</param-name>
  |         <param-value>true</param-value>
  |     </context-param>
  |     -->
  | 
  |     <!-- Faces Servlet Mapping -->
  | <!--
  |     <servlet-mapping>
  |         <servlet-name>Faces Servlet</servlet-name>
  |         <url-pattern>*.seam</url-pattern>
  |     </servlet-mapping>
  | 
  | -->
  | 
  |   <servlet>
  |     <servlet-name>Blocking Servlet</servlet-name>
  |     <servlet-class>com.icesoft.faces.webapp.xmlhttp.BlockingServlet</servlet-class>
  |     <load-on-startup> 1 </load-on-startup>
  |   </servlet>
  | 
  |     <servlet>
  |         <servlet-name>Persistent Faces Servlet</servlet-name>
  |         <servlet-class>com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet</servlet-class>
  |         <load-on-startup>1</load-on-startup>
  |     </servlet>
  | 
  |   <servlet-mapping>
  |     <servlet-name>Persistent Faces Servlet</servlet-name>
  |     <url-pattern>/xmlhttp/*</url-pattern>
  |   </servlet-mapping>
  | 
  |   <servlet-mapping>
  |     <servlet-name>Persistent Faces Servlet</servlet-name>
  |     <url-pattern>/xmlhttp/*</url-pattern>
  |   </servlet-mapping>
  | 
  |   <servlet-mapping>
  |     <servlet-name>Persistent Faces Servlet</servlet-name>
  |     <url-pattern>*.iface</url-pattern>
  |   </servlet-mapping>
  | 
  |     <!-- file upload Servlet -->
  |     <servlet>
  |          <servlet-name>uploadServlet</servlet-name>
  |          <servlet-class>com.icesoft.faces.component.inputfile.FileUploadServlet</servlet-class>
  |          <load-on-startup> 1 </load-on-startup>
  |     </servlet>
  | 
  |     <servlet-mapping>
  |          <servlet-name>uploadServlet</servlet-name>
  |          <url-pattern>/uploadHtml</url-pattern>
  |     </servlet-mapping>
  | 


Just a short post should give me a starting point.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4025244#4025244

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4025244



More information about the jboss-user mailing list