On Wed, May 13, 2009 at 8:37 AM, Neil Griffin
<ngriffin@liferay.com> wrote:
Ed, Roger,
Regarding section 3.6.1.4 "A simple composite component example", the spec reads:
>> Create the composite component markup page. In this case, loginPanel.xhtml
>> resides in the ./resources/ezcomp directory relative to the index.xhtml file.
I'm one of those guys who likes to have all his views in a sub-folder of the context-path, something like this:
my-context-path/xhtml/index.xhtml
Anyways, I tried creating the following folder:
my-context-path/xhtml/resources/ezcomp
And Tomcat's FileDirContext.file() method checks for the existence of "resources/ezcomp" relative to my-context-path, and not the index.xhtml file.
So when I renamed the resources folder to this:
my-context-path/resources/ezcomp
Then my composite component started working. Not sure if this is true with other servlet containers or app servers, but Tomcat doesn't seem to offer any other option.
Neil, we were actually discussing that in another thread =>
http://archives.java.sun.com/cgi-bin/wa?A2=ind0904&L=JSR-314-OPEN&P=16181
My point was a slight variation of yours. I'm concerned that these composite component templates are exposed as public pages. I would prefer if we mirror the resources directory under WEB-INF so that you can have both a public and a private repository.
...but as it stands now, the folder name resources is hard-coded. As Ed points out, you have to use a Facelets configuration file to relocate the template.
-Dan
--