Author: craigmcc Date: Sun Aug 28 15:49:53 2005 New Revision: 263929 URL: http://svn.apache.org/viewcvs?rev=263929&view=rev Log: Make the managed bean naming requirement for ViewController beans much more explict, and add exampes of proper mapping for typical cases using the default mapping implementation (DefaultViewControllerMapper).
Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/view/ViewController.java struts/shale/trunk/core-library/src/java/org/apache/shale/view/impl/DefaultViewControllerMapper.java Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/view/ViewController.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/java/org/apache/shale/view/ViewController.java?rev=263929&r1=263928&r2=263929&view=diff ============================================================================== --- struts/shale/trunk/core-library/src/java/org/apache/shale/view/ViewController.java (original) +++ struts/shale/trunk/core-library/src/java/org/apache/shale/view/ViewController.java Sun Aug 28 15:49:53 2005 @@ -16,6 +16,8 @@ package org.apache.shale.view; +import org.apache.shale.view.impl.DefaultViewControllerMapper; + /** * <p>[EMAIL PROTECTED] ViewController} is a "backing bean" interface which adds several * extension points to the standard JavaServer Faces lifecycle. The extension @@ -56,19 +58,28 @@ * constructor in your ViewController backing bean implementation class. * Configuration of ViewController beans is performed using setter injection, * rather than through "rich" constructors.</li> - * <li>Register this class as a JSF <code><managed-bean></code>, - * using a <code><managed-bean-name></code> that corresponds to - * the <code>view identifier</code> of the JSF view. Mapping between - * <code>view id</code> and managed bean names will be performed by - * a [EMAIL PROTECTED] ViewControllerMapper} configured for this application. - * <ul> - * <li>Under nearly all circumstances, you will want to register this - * managed bean to be stored in request scope, so that its lifetime - * matches the corresponding view.</li> - * <li>Optionally, you may use <code><managed-property></code> - * elements within the <code><managed-bean></code> element - * to configure the behavior of your ViewController bean.</li> - * </ul></li> + * <li>In order for Shale to properly locate the [EMAIL PROTECTED] ViewController} for + * a particular JSF view, you must register your implementation class in + * a JSF <code><managed-bean></code> element, using a + * <code><managed-bean-name></code> value that can be <em>mapped</em> + * from the view identifier. The actual mapping is performed by an instance + * of [EMAIL PROTECTED] ViewControllerMapper} configured for your application. If no + * special configuration is done, [EMAIL PROTECTED] DefaultViewControllerMapper} is + * used by default. See the Javadocs for that class to see what mapping + * rules are applied, and examples of correct managed bean names that + * correspond to particular JSF view identifiers. + * <blockquote> + * <strong>WARNING</strong> - if your managed bean name does not match + * the required mapping rules, it will function as a standard JSF backing + * bean, but none of the extra [EMAIL PROTECTED] ViewController} event handling + * methods will be called. + * </blockquote></li> + * <li>Under nearly all circumstances, you will want to register this + * managed bean to be stored in request scope, so that its lifetime + * matches the corresponding view.</li> + * <li>Optionally, you may use <code><managed-property></code> + * elements within the <code><managed-bean></code> element + * to configure the behavior of your ViewController bean.</li> * </ul> * * <p>Since the ViewController is a backing bean, you have the option of Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/view/impl/DefaultViewControllerMapper.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/java/org/apache/shale/view/impl/DefaultViewControllerMapper.java?rev=263929&r1=263928&r2=263929&view=diff ============================================================================== --- struts/shale/trunk/core-library/src/java/org/apache/shale/view/impl/DefaultViewControllerMapper.java (original) +++ struts/shale/trunk/core-library/src/java/org/apache/shale/view/impl/DefaultViewControllerMapper.java Sun Aug 28 15:49:53 2005 @@ -34,6 +34,21 @@ * underscore character ("_"), to avoid problems loading managed beans.</li> * </ul> * + * <p>Examples of correct managed bean names for typical JSF view identifiers, + * when this mapper is used, would include:</p> + * <ul> + * <li>For a view identifier <code>/mainmenu.jsp</code>, your managed bean + * name <em>must</em> be <code>mainmenu</code> (leading slash and + * trailing extension were stripped).</li> + * <li>For a view identifier <code>/customer/details.jsp</code>, your managed + * bean name <em>must</em> be <code>customer$details</code> (intermediate + * slash character also converted).</li> + * <li>For a view identifier <code>/header.jsp</code>, your managed bean + * name <em>must</em> be <code>_header</code> ("header" is a magic JSF + * variable returning a Map of HTTP headers for the current request, so + * you cannot use this name for your own managed beans).</li> + * </ul> + * * $Id$ */ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]