I am using a similar code to access templates from another webapp, but the 
sample DatabaseResourceResolver shows you the basis:


  | import java.io.ByteArrayInputStream;
  | import java.io.IOException;
  | import java.io.InputStream;
  | import java.net.MalformedURLException;
  | import java.net.URL;
  | import java.net.URLConnection;
  | import java.net.URLStreamHandler;
  | 
  | import com.sun.facelets.impl.DefaultResourceResolver;
  | 
  | /**
  |  * @author Thomas Maerz ([EMAIL PROTECTED])
  |  */
  | public class DatabaseResourceResolver extends DefaultResourceResolver {
  | 
  |     @Override
  |     public URL resolveUrl(String path) {
  |             URL url = super.resolveUrl(path);
  |             if (url != null) {
  |                     return url;
  |             }
  | 
  |             try {
  |                     return new URL("internal", null, 0, path, 
getHandler(path));
  |             } catch (MalformedURLException e) {
  |             }
  |             return null;
  |     }
  | 
  |     private static URLStreamHandler getHandler(final String path) {
  | 
  |             return new URLStreamHandler() {
  | 
  |                     @Override
  |                     protected URLConnection openConnection(URL url) throws 
IOException {
  |                             return new URLConnection(url) {
  | 
  |                                     @Override
  |                                     public void connect() throws 
IOException {
  |                                     }
  | 
  |                                     @Override
  |                                     public InputStream getInputStream() 
throws IOException {
  |                                             // Connect to Database and 
return your content
  |                                             return new 
ByteArrayInputStream(new byte[] {});
  |                                     }
  | 
  |                             };
  |                     }
  | 
  |             };
  | 
  |     }
  | 
  | }
  | 

web.xml

  |         <context-param>
  |                 <param-name>facelets.RESOURCE_RESOLVER</param-name>
  |                 <param-value>DatabaseResourceResolver</param-value>
  |         </context-param>
  | 

Facelets file

  | <ui:composition
  |     xmlns:ui="http://java.sun.com/jsf/facelets";
  |     template="/cms/some/path/index.html">
  | 



But there are some pitfalls:

- Facelets will cache the the returned URL with the path as key
- You have to handle reloading yourself (Override getLastModified() in 
URLConnection)
- return valid XML


Hope that helps,
Tom


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

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4125126
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to