>From: "Gregg Bolinger" <[EMAIL PROTECTED]> > > I am evaluating Shale. I realize it is a work in progress and that nothing > is fully finallized/stable and I expect there to be issues. I also expect > great things from Shale in the future and want to help track down issues for > development. Hence, my eval. I've got some questions about Clay... > > I have searched the mailing list archives and found psuedo answers to my > issues but nothing concrete. I am trying to utalize tapestry like views and > full HTML layout. I've read the online doc and downloaded and read the PDF > doc. I have also looked at the code for the Use Case Roladex which seemed > to just confuse me more. I know people have asked for a simpler example of > using Clay already, so I won't. But I would like some clarification. > > If I want to use tapestry like views and full html layout, do I need the > clay-template-suffix context param and do I need to map the servlet to the > same extension. Also the documentation shows the clay-template-suffix as > .clay and then the servlet mapping as .html. It states both should be the > same. Is HTML preferred? >
The default suffix for the clay html views is .html. You can override this if you want using the context param in the web.xml. <context-param> <param-name> org.apache.shale.clay.HTML_TEMPLATE_SUFFIX </param-name> <param-value>.clayh</param-value> </context-param> You also need to modify the faces servlet mapping so that the suffix you choose is handled by the faces servlet. <servlet-mapping> <servlet-name>faces</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> > Exactly what file should I place my component declarations in and where > should this file reside? > The component declarations can reside under the context root or within the classpath but both should be registered in the web.xml. <!-- Clay Common Configuration Resources --> <context-param> <param-name>org.apache.shale.clay.COMMON_CONFIG_FILES</param-name> <param-value>/WEB-INF/clay-config.xml, /WEB-INF/clay-symbols-config.xml</param-value> </context-param> We borrowed the prefix of "classpath*:" from spring to indicate the config file should be loaded with the class loader. <context-param> <param-name>org.apache.shale.clay.COMMON_CONFIG_FILES</param-name> <param-value>classpath*:org/apache/shale/usecases/symbols/clay-tiles-config.xml</param-value> </context-param> These files will be loaded on startup. If you are only using full html views, you will need to add another param to the web.xml. The usecase apps shows how to use three types of views in the same app (JSP, HTML, XML). This is probably not a normal usecase in the real world. <context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.html</param-value> </context-param> > For full HTML layout, do I need a JSP that pulls in the appropriate template > using the clay-shale taglib? > No, the shale-clay.jar has a self registering view handler that detects the suffix (.html) defined in the web.xml. So you don't even have to use a JSP. There are a couple of the full HTML rolodex examples that show this option. The *extreme* HTML rolodex example show that you don't have to use any XML configs. The complete page is defined in HTML. The fun part to the clay is that it is a component and can be used in many ways. When used in full html views, the clay component it the only child under the view root. > Is there currently any other documentation that I am not aware of concerning > Clay? > None that I'm aware of other than the website and the mailing list. I think that Manning was considering a Shale book that had a couple chapters on using Clay but I'm not sure what the status is on that. I've been threating to do some more of that but I'd rather contribute other ways. > Thanks a bunch and I look forward to Shale's growth. > Give it a look. You might be able to help with that growth as many cool features like symbols came about the same way. > Gregg Bolinger > Gary