Author: husted Date: Wed Nov 2 05:55:48 2005 New Revision: 330256 URL: http://svn.apache.org/viewcvs?rev=330256&view=rev Log: * FAQ: Update for the 1.3.x series. (The Tag FAQs will be moved to a new FAQ under Taglib.) * Site: Add our old friends Turbine to the similar projects list.
Modified: struts/core/trunk/xdocs/faqs/kickstart.xml struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml struts/sandbox/trunk/overdrive/PhoneBook/Core/PhoneBook.Core.xml struts/site/trunk/xdocs/navigation.xml Modified: struts/core/trunk/xdocs/faqs/kickstart.xml URL: http://svn.apache.org/viewcvs/struts/core/trunk/xdocs/faqs/kickstart.xml?rev=330256&r1=330255&r2=330256&view=diff ============================================================================== --- struts/core/trunk/xdocs/faqs/kickstart.xml (original) +++ struts/core/trunk/xdocs/faqs/kickstart.xml Wed Nov 2 05:55:48 2005 @@ -11,72 +11,58 @@ <subsection name="Index"> <p> -Here are answers to the usual getting-started questions. <strong>For an in-depth, searchable FAQ, visit our friends at <a href="http://www.jguru.com/faq/home.jsp?topic=Struts">JGuru</a>.</strong> +Here are answers to the usual getting-started questions. </p> <ul> - <li><a href="#why">Why do we need Struts?</a></li> - <li><a href="#how">How does Struts work?</a></li> - <li><a href="#compat">Is Struts compatible with other Java technologies?</a></li> - <li><a href="#who">Who wrote Struts?</a></li> + <li><a href="#why">Why do we need Struts Core?</a></li> + <li><a href="#how">How does Struts Core work?</a></li> + <li><a href="#compat">Is Struts Core compatible with other Java technologies?</a></li> <li><a href="#struts">Why is it called Struts?</a></li> - <li><a href="#license">How is Struts licensed?</a></li> - <li><a href="#usage">Can Struts be used in a commercial application?</a></li> - <li><a href="#credits">Do I have to credit Struts on my own website?</a></li> + <li><a href="#license">How is Apache Struts licensed?</a></li> + <li><a href="#usage">Can Apache Struts be used in a commercial application?</a></li> + <li><a href="#credits">Do I have to credit Apache Struts on my own website?</a></li> </ul> <ul> - <li><a href="#shale">Why are you offering both Struts Shale and Struts Classic? Don't they compete for new development?</a></li> + <li><a href="#who">Who wrote Struts Core?</a></li> + <li><a href="#shale">Why are you offering both Struts Shale and Struts Core? Don't they compete for new development?</a></li> <li><a href="#2x">Is Shale likely to become Struts 2.x?</a></li> <li><a href="#shale-fork">Is Struts Shale a fork?</a></li> + <li><a href="#classic">What's the difference between Struts Core and Struts Classic</a></li> </ul> <ul> - <li><a href="#where">Where can I get a copy of Struts?</a></li> - <li><a href="#install">How do I install Struts?</a></li> - <li><a href="#jar">When do I need the struts.jar on my classpath?</a></li> - <li><a href="#tests">Does Struts provide its own unit tests?</a></li> + <li><a href="#where">Where can I get a copy of Struts Core?</a></li> + <li><a href="#install">How do I install Struts Core?</a></li> + <li><a href="#jar">When do I need the struts-core.jar on my classpath?</a></li> + <li><a href="#tests">Does Struts Core provide its own unit tests?</a></li> </ul><ul> <li><a href="#requests">If the framework doesn't do what I want, can I request that a feature be added?</a></li> - <li><a href="#help">Where can I get help with Struts?</a></li> - <li><a href="#support">Is commercial support available for Struts?</a></li> - <li><a href="#providers">Are there ISPs that will host my Struts application?</a></li> + <li><a href="#help">Where can I get help with Apache Struts?</a></li> + <li><a href="#support">Is commercial support available for Apach eStruts?</a></li> + <li><a href="#providers">Are there ISPs that will host my Apache Struts application?</a></li> + <li><a href="#ide">Is there a particularly good IDE to use with Struts Core?</a></li> </ul><ul> - <li><a href="#turbine">What's the difference between Struts and Turbine? What's the difference between Struts and Expresso?</a></li> - <li><a href="#taglibs">Why aren't the Struts tags maintained as part of the Jakarta Taglibs project?</a></li> - <li><a href="#xhtml">Are the Struts tags XHTML compliant?</a></li> - <li><a href="#jsf">What about JSTL and JavaServer Faces?</a></li> - <li><a href="#ide">Is there a particularly good IDE to use with Struts?</a></li> - </ul><ul> - <li><a href="#digest">Is there a digest for the User list?</a></li> - <li><a href="#newsgroup">Is there a Struts Newsgroup?</a></li> + <li><a href="#digest">Is there a digest for the Apache Struts User list?</a></li> + <li><a href="#newsgroup">Is there a Apache Struts Newsgroup?</a></li> <li><a href="#mailbounce">Why didn't my posting show up on the user list?"</a></li> <li><a href="#unsubscribe">How do I unsubscribe from the mailing list?</a></li> </ul> </subsection> <a name="why"/> -<subsection name="Why do we need Struts?"> -<p>Java technologies give developers a serious boost when creating and maintaining applications to meet the demands of today's public Web sites and enterprise intranets. Struts combines Java Servlets, Java ServerPages, custom tags, and message resources into a unified framework. The end result is a cooperative, synergistic platform, suitable for development teams, independent developers, and everyone in between.</p> +<subsection name="Why do we need Struts Core?"> +<p>Java technologies give developers a serious boost when creating and maintaining applications to meet the demands of today's public Web sites and enterprise intranets. Struts Core combines standard Java technologies into a unified framework. The end result is a cooperative, synergistic framework, suitable for development teams, independent developers, and everyone in between.</p> </subsection> <a name="how"/> -<subsection name="How does Struts work?"> -<p>Java Servlets are designed to handle requests made by Web browsers. Java ServerPages are designed to create dynamic Web pages that can turn billboard sites into live applications. Struts uses a special Servlet as a switchboard to route requests from Web browsers to the appropriate ServerPage. This makes Web applications much easier to design, create, and maintain.</p> +<subsection name="How does Struts Core work?"> +<p>Java Servlets are designed to handle requests made by Web browsers. Server pages are designed to create dynamic Web pages that can turn billboard sites into live applications. Struts Core uses a special Servlet as a switchboard to route requests from Web browsers to the appropriate server page. This makes Web applications much easier to design, create, and maintain.</p> </subsection> <a name="compat"/> -<subsection name="Is Struts compatible with other Java technologies?"> +<subsection name="Is Struts Core compatible with other Java technologies?"> <p>Yes. Struts is committed to supporting industry standards. - Struts acts as an integrator of Java technologies so that they can be used in the "real world".</p> -</subsection> - -<a name="who"/> -<subsection name="Who wrote Struts?"> - <p>There are several <a href="../volunteers.html">active committers</a> to the Struts project, working cooperatively from around the globe. Dozens of individual developers and committers contributed to the Struts 1.x codebase. All interested Java developers are invited to <a href="helping.html#contribute">contribute to the project</a>. - Struts is a <a href="http://apache.org/">Apache Software Foundation</a> project, with the mission to "provide secure, enterprise-grade server solutions based on the Java Platform that are developed in an open and cooperative fashion".</p> - <p>Struts was created by Craig R. McClanahan and donated to The Apache Software Foundation in May 2000. Craig was the primary developer of both Struts 1.x and <a href="http://jakarta.apache.org/tomcat/index.html">Tomcat 4</a>. Tomcat 4 was the basis for the official reference implementation for a servlet 2.3 and JSP 1.2 container.</p> - <p>Craig's current focus is as architect of the Sun Java Studio Creator (formerly Project Rave). - Craig also serves as the Specification Lead for <a href="http://jcp.org/jsr/detail/127.jsp">JavaServer Faces (JSR-127)</a>, - and is the Web Layer Architect for the Java2 Enterprise Edition (J2EE) platform as a whole.</p> + Struts acts as an integrator of Java technologies so that they can be used in the "real world".</p> </subsection> <a name="struts"/> @@ -85,68 +71,85 @@ </subsection> <a name="license"/> -<subsection name="How is Struts licensed?"> -<p>Struts is copyrighted software available under the <a href="http://www.apache.org/licenses">Apache License</a>, a "free-to-use, business-friendly license".</p> +<subsection name="How is Apache Struts licensed?"> +<p>All Apache Struts products are copyrighted software available under the <a href="http://www.apache.org/licenses">Apache License</a>, a "free-to-use, business-friendly license".</p> </subsection> <a name="usage"/> -<subsection name="Can Struts be used in a commercial product?"> +<subsection name="Can Apache Struts be used in a commercial product?"> <p>Yes. The only requirements you must meet are those listed in the <a href="http://www.apache.org/licenses">Apache License</a>.</p> </subsection> <a name="credits"/> -<subsection name="Do I have to credit Struts on my own website?"> -<p>You need to credit Struts if you <strong>redistribute your own framework</strong> based on Struts +<subsection name="Do I have to credit Apache Struts on my own website?"> +<p>You need to credit Apache Struts if you <strong>redistribute your own framework</strong> based on our products for other people to use. (See the <a href="http://www.apache.org/LICENSE">Apache License</a> for details.) -But you do <strong>not</strong> need to credit Struts just because your web application utilizes the framework. +But you do <strong>not</strong> need to credit Apache Struts just because your web application utilizes one of our products. It's the same situation as using the Apache HTTPD server or Tomcat. Not required if its just running your web site. Required if you've used the source code to create your own server that you are redistributing to other people.</p> </subsection> +<a name="who"/> +<subsection name="Who wrote Struts Core?"> + <p>There are several <a href="../volunteers.html">active committers</a> to the Apache Struts project, working cooperatively from around the globe. Dozens of individual developers and committers contributed to the Struts 1.x codebase. All interested developers and wordsmiths are invited to <a href="http://struts.apache.org/helping.html#contribute">contribute to the project</a>.</p> + <p>The initial Struts codebase (Struts 0.5) was created by Craig R. McClanahan in May 2000 and donated to The Apache Software Foundation in May 2000. Craig was the primary developer of both Struts 1.x and <a href="http://jakarta.apache.org/tomcat/index.html">Tomcat 4</a>. Tomcat 4 was the basis for the official reference implementation for a servlet 2.3 and JSP 1.2 container.</p> + <p>After serving as the co-lead of the JSR 127 specification (JavaServerFaces), Craig created another version of Struts based on JavaServerFaces, called Shale. Both Struts Core and Struts Shale are first-class citizens of the Apache Struts project. </p> +</subsection> + <a name="shale"/> -<subsection name="Why are you offering both Struts Shale and Struts Classic? Don't they compete for new development?"> -<p>We do offer Struts developers a choice, but, hey, choice is good. :)</p> -<p>People who want to create and maintain Struts Classic are welcome to do so.</p> +<subsection name="Why are you offering both Struts Shale and Struts Core? Don't they compete for new development?"> +<p>We do offer Apache Struts developers a choice, but, hey, choice is good. :)</p> +<p>People who want to create and maintain Struts Core are welcome to do so.</p> <p>People who want to create and maintain Struts Shale are equally welcome.</p> <p>As a volunteer organization, we are not constrained by the economics of competition. All we need are volunteers who are ready, willing, and able to do the work. So long as we have volunteers, we have work for them to do. :)</p> -<p>Right now, we have volunteers who want to leverage the new JavaServer Faces framework by using Struts Shale for new development. We also have volunteers who prefer to leverage their existing investment in Struts Classic. All are welcome.</p> +<p>Right now, we have volunteers who want to leverage the new JavaServer Faces framework by using Struts Shale for new development. We also have volunteers who prefer to leverage their existing investment in Struts Core. All are welcome.</p> <p>For more about volunteering, visit our <a href="http://struts.apache.org/faqs/helping.html">how to help page</a>.</p> </subsection> <a name="2x"/> <subsection name="Is Shale likely to become Struts 2.x?"> -<p>Struts Shale has its own identity and its own release cycle. Struts Classic is one subproject, and Struts Shale is another.</p> -<p>So, no, it is not likely that Struts Shale will become Struts Classic 2.x.</p> -<p>Right now, there are no concrete plans for a 2.x release of Struts Classic. The people working on the 1.x series want to evolve the code base without breaking backward compatibility.</p> -<p>The reasons to roll the major version number are when</p> +<p>Struts Shale has its own identity and its own release cycle. Struts Core is one subproject, and Struts Shale is another.</p> +<p>So, no, it is not likely that Struts Shale will become Struts Core 2.x.</p> +<p>Right now, there are no concrete plans for a 2.x release of Struts Core. The people working on the 1.x series want to evolve the code base without breaking backward compatibility.</p> +<p>In our opinion, the reasons to roll the major version number are when</p> <ul> <li>a new codebase is created, or</li> <li>there is a break in backward compatability.</li> </ul> -<p>Should either of these things happen, then, in that event, there might be a Struts Classic 2.x.</p> -<p>For example, right now, most everyone is using Java 1.3, so that it is what Struts Classic targets. But, if someone wanted to start a "Struts Tiger" codebase, using the new features of Java 1.5, something like that might be a candidate for Struts Classic 2.x.</p> -<p>But, so long as each Struts Classic release follows the deprecate/replace/remove strategy, and targets the mainstream platform, we will just keep rolling the minor version number. If this takes us to Struts 1.42 or Struts 1.2025, then so be it.</p> +<p>Should either of these things happen, then, in that event, there might be a Struts Core 2.x.</p> +<p>For example, right now, most of us are using Java 1.3 in production, so that is the platform that Struts Core targets. But, if someone wanted to start a "Struts Tiger" codebase, using the new features of Java 1.5, something like that might be a candidate for Struts Core 2.x.</p> +<p>But, so long as each Struts Core release follows the deprecate/replace/remove strategy, and targets the mainstream platform, we will just keep rolling the minor version number. If this takes us to Struts 1.42 or Struts 1.2025, then so be it.</p> </subsection> <a name="fork"/> <subsection name="Is Struts Shale a fork?"> -<p>No. It's an entirely new product with its own architecture. Struts Shale is an MVC framework for web applications, like Struts Classic, but it's a fresh start. Struts Shale is the best choice for developers eager to leverage the latest technologies, like JavaServer Faces.</p> +<p>No. It's an entirely new product with its own architecture. Struts Shale is an MVC framework for web applications, like Struts Core, but it's a fresh start. Struts Shale is the best choice for developers eager to leverage the latest technologies, like JavaServer Faces.</p> <p>Both frameworks will have a home here so long as there are volunteers ready to contribute.</p> <p>We encourage you to choose the framework that works best for you. (Even if it is not one of ours!)</p> </subsection> +<a name="core"/> +<subsection name="What's the difference between Struts Core and Struts Classic?"> +<p>For the Struts Core 1.3.x series, we subdivided the monolithic Struts 1.2.x distribution into several discrete subprojects. Struts Classic is a codename for the work we needed to do to create and release the new subprojects. </p> +<p>For a time, we considered bundling those seven products together and calling the bundle "Struts Classic". Instead, we are bundling Struts Core and any compatible projects into a distribution called "Struts Core Library". This bundle includes the original "seven dwarfs" and new subprojects, like Struts Scripting.</p> +</subsection> + <a name="where"/> -<subsection name="Where can I get a copy of Struts?"> -<p>The best place to download Struts is at <a href="http://struts.apache.org/">struts.apache.org</a>. The nightly builds are very stable, and recommended as the best place to start today.</p> +<subsection name="Where can I get a copy of Struts Core?"> +<p>The best place to download Apahce Struts products is at <a href="http://struts.apache.org/">struts.apache.org</a>. The nightly builds are very stable, and recommended as the best place to start today.</p> </subsection> <a name="install"/> -<subsection name="How do I install Struts?"> +<subsection name="How do I install Struts Core?"> <p>To develop applications with Struts, you can usually just add the Struts JAR file to your Java development environment. You can then start using the Struts classes as part of your own application. A blank Struts application (in the <code>webapps</code> directory, open <code>struts-blank.war</code>) is provided, which you can just copy to get a quick-start on your own brainchild.</p> +<p>Aside from the Struts Core jar, the blank application includes the other Struts Core +Library JARs and dependencies. +All dependencies are compatible with the Apache License. +</p> <p>Since the full source code for Struts is available, we also provide <a href="../userGuide/installation.html">complete instructions</a> for compiling your own Struts JAR from scratch. (This is actually easier than it looks!)</p> @@ -158,22 +161,22 @@ </subsection> <a name="jar"/> -<subsection name="When do I need "struts.jar" on my classpath?"> -<p>When you are compiling an application that uses the Struts classes, you must have the "struts.jar" on the classpath your <strong>compiler</strong> sees -- it does not <em> have</em> to be on your CLASSPATH environment variable.</p> -<p>Why is that an important distinction? Because if you are using a servlet container on your development machine to test your application, the "struts.jar" <strong>must not</strong> be on your CLASSPATH environment variable when running the container. (This is because each Web application must also have their own copy of the Struts classes, and the container will become confused if it is on the environment path as well.)</p> +<subsection name="When do I need "struts-core.jar" on my classpath?"> +<p>When you are compiling an application that uses the Struts classes, you must have the "struts-core.jar" on the classpath your <strong>compiler</strong> sees -- it does not <em> have</em> to be on your CLASSPATH environment variable.</p> +<p>Why is that an important distinction? Because if you are using a servlet container on your development machine to test your application, the "struts-core.jar" <strong>must not</strong> be on your CLASSPATH environment variable when running the container. (This is because each Web application must also have their own copy of the Struts classes, and the container will become confused if it is on the environment path as well.)</p> <p>There are several general approaches to this issue:</p> <ul> <li><strong>Use ANT</strong> for building your projects -- it can easily assemble classpaths for the compiler. (This is how Struts itself is built, along with Tomcat and most other Java-based projects).</li> <li><strong>Use an IDE</strong> where you can configure the "class path" used for compilation independent of the CLASSPATH environment variable.</li> -<li><strong>Use a shell script</strong> that temporarily adds struts.jar to the classpath just for compilation, for example<br/> -<em>javac -classpath /path/to/struts.jar:$CLASSPATH $@</em></li> +<li><strong>Use a shell script</strong> that temporarily adds struts-core.jar to the classpath just for compilation, for example<br/> +<em>javac -classpath /path/to/struts-core.jar:$CLASSPATH $@</em></li> </ul> </subsection> <a name="tests"/> -<subsection name="Does Struts include its own unit tests?"> +<subsection name="Does Struts Core include its own unit tests?"> <p> -Struts currently has two testing environments, to reflect the fact that +Struts Core currently has two testing environments, to reflect the fact that some things can be tested statically, and some really need to be done in the environment of a running servlet container.</p> <p> @@ -198,9 +201,9 @@ <a name="requests"/> <subsection name="If the framework doesn't do what I want, can I request that a feature be added?"> <p> -First, it's important to remember that Struts is an all-volunteer project. -We don't charge anyone anything to use Struts. -Committers and other developers work on Struts because they need to use it with their own applications. +First, it's important to remember that Apache Struts is an all-volunteer project. +We don't charge anyone anything to use Apache Struts products. +Committers and other developers work on Apache Struts products because they need to use it with their own applications. If others can use it too, that's "icing on the cake". If you <a href="../helping.html">submit a patch</a> for a feature that a Committer finds useful, then that Committer may choose to volunteer his or her time to apply the patch. If you just submit an idea without a patch, it is much less likely to be added (since first someone else has to volunteer their time to write the patch). @@ -211,25 +214,22 @@ </subsection> <a name="help"/> -<subsection name="Where can I get help with Struts?"> -<p>The Struts package comes complete with a +<subsection name="Where can I get help with Struts Core?"> +<p>Struts Core comes complete with a <a href="../userGuide/index.html">Users Guide</a> to introduce people to the framework and its underlying technologies. Various components also have their own in-depth Developers Guide, to cover more advanced topics. Comprehensive <a href="../api/index.html">Javadocs</a> are included -along with the <strong>full source code</strong>. For your convenience, these are bundled together as -a self-installing application. The <code>struts-documentation.war</code> is the same -bundle that is deployed as the -<a href="http://struts.apache.org/">Struts Web site</a>. +along with the <strong>full source code</strong>. </p> <p> The -<a href="http://struts.apache.org/using.html#lists">Strut's mailing list</a> is also +<a href="http://struts.apache.org/mail.html">Struts user mailing list</a> is also very active, and welcomes posts from new users. Before posting a new question, be sure to consult the -<a href="../mail.html#Archives"> +<a href="http://struts.apache.org/mail.html#Archives"> <strong>MAILING LIST ARCHIVE</strong></a> and the very excellent -<a href="http://www.tuxedo.org/~esr/faqs/smart-questions.html"> +<a href="http://www.catb.org/~esr/faqs/smart-questions.html"> How To Ask Questions The Smart Way</a> by Eric Raymond. Please do be sure to <a href="http://expita.com/nomime.html">turn off HTML</a> in your email client before posting. @@ -238,128 +238,17 @@ <a name="support"/> <subsection name="Is commercial support available?"> -<p>There is no official, commercial support for Struts, though third parties may offer different degrees of support. </p> +<p>The Apache Software Foundation does not provide commercial support for any of our software products, including Apache Struts products. +However, third parties may offer different degrees of support. </p> </subsection> <a name="providers"/> <subsection name="Are there ISPs that will host my Struts application?"> -<p>For a listing of some Java and Struts ISPs, visit the <a href="http://struts.sf.net/community/index.html">Struts Community Resources</a> area on SourceForge.</p> -</subsection> - -<a name="turbine"/> -<subsection name="What's the difference between Struts and Turbine? What's the difference between Struts and Expresso?"> -<p> -If you are starting from scratch, packages like -<a href="http://jakarta.apache.org/turbine">Turbine</a> and -<a href="http://jcorporate.com">Expresso</a> -can be very helpful since they try to provide all of the basic services that your team is likely to need. -Such services include things like data persistence and logging. -</p> -<p> -If you are not starting from scratch, and need to hook up your web application to an existing infrastructure, then "plain vanilla" Struts can be a better choice. -The core Struts framework does not presuppose that you are using a given set of data persistence, presentation, or logging tools. -Anything goes =:0) -</p> -<p> -Compared to other offerings, Struts endeavors to be a minimalist framework. -We try leverage existing technologies whenever we can and provide only the missing pieces you need to combine disparate technologies into a coherent application. -This is great when you want to select your own tools to use with Struts. -But, if you prefer a more integrated infrastructure, then packages like Turbine or Expresso (which uses Struts) are perfectly good ways to go. -</p> -<p>See also</p> -<ul> -<li>< <a href="http://www.mail-archive.com/struts-user@jakarta.apache.org/msg03206.html">http://www.mail-archive.com/struts-user@jakarta.apache.org/msg03206.html</a> ></li> -<li>< <a href="http://www.mail-archive.com/general@jakarta.apache.org/msg00495.html">http://www.mail-archive.com/general@jakarta.apache.org/msg00495.html</a> ></li> -<li>< <a href="http://jakarta.apache.org/velocity/ymtd/ymtd.html">http://jakarta.apache.org/velocity/ymtd/ymtd.html</a> ></li> -</ul> -</subsection> - -<a name="taglibs"/> -<subsection name="Why aren't the Struts tags maintained as part of the Jakarta Taglibs project?"> -<p>Development of both products began about the same time. Leading up to the release of 1.0, it was thought better to continue to develop the taglibs alongside the controller. Now that 1.0 is out, the JavaServer Pages Standard Taglib is in active development. Once work on JSTL stabilizes, the Struts taglibs will be revisited. Tags which are not linked directly to the framework may be hosted at Jakarta Taglibs instead.</p> -</subsection> - -<a name="xhtml"/> -<subsection name="Are the Struts tags XHTML compliant?"> -<p>If you use an <html:html xhtml="true> or <html:xhtml/> element on your page, the tags -will render as XHTML (since Struts 1.1). </p> -</subsection> - -<a name="wml"/> -<subsection name="Will the Struts tags support other markup languages such as WML"> -<p> -Struts itself is markup neutral. The original Struts taglibs are only one example of how -presentation layer components can access the framework. The framework objects are exposed -through the standard application, session, and request contexts, where any Java component in -the application can make use of them. -</p> - -<p>Markup extensions that use Struts are available for -<a href="http://jakarta.apache.org/velocity">Velocity</a> and -<a href="http://www.openroad.ca/opencode/">XLST</a>, among others. -A new Struts tag library for -<a href="#jsf">Java Server Faces</a> is also in development. -</p> - -<p>For more about using WAP/WML with Struts see the article -<a href="http://www.sys-con.com/pbdj/archives2/0904/hamboeck/"> -WAP up your EAserver</a>. -</p> -</subsection> - -<a name="jsf"/> -<subsection name="What about JSTL and JavaServer Faces?"> - <p> - JSTL, the <a href="http://java.sun.com/products/jsp/jstl/"> - JavaServer Standard Tag Library</a>, is a set of JSP tags that - are designed to make it easier to develop Web applications. - <a href="http://java.sun.com/j2ee/javaserverfaces/">JavaServer Faces</a> - (JSF) is a specification for a new technology that promises to make - it easier to write MVC applications, both for the Web and for the - desktop. - </p> -<p> -The inventor of Struts, Craig McClanahan, is the specification co-lead for -JavaServer Faces (JSR 127), and architect of the reference implemenation -as well as Java Studio Creator. Both JSTL and JSF are complementary to Struts.</p> -<p> -The mainstay of the Struts framework is the controller components, which -can be used with any Java presentation technology. As new technologies -become available, it is certain that new "glue" components will also -appear to help these technologies work as well with Struts. - </p> - <p> - Struts originally came bundled with a set of custom JSP tags. - Today, several extensions are available to help - you use Struts with other popular presentation technologies, like - XSLT and Velocity. Likewise, extensions for JSTL and JSF are now available as well. - </p> -<p> - The JSTL reference implementation is available through the - <a href="http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html">Jakarta Taglibs site</a>. - A JSTL taglibs for Struts, - <a href="../userGuide/building_view.html#struts-el"><strong>Struts-El</strong></a>, - is available and distributed with Struts beginning with the 1.1 release. -</p> - <p> - The JSF specification and reference implementation is available through Sun's - The JSF specification and reference implementation is available through Sun's - <a href="http://java.sun.com/j2ee/javaserverfaces/index.jsp">Java ServerFaces page</a>. - An early-release JavaServer Faces taglib for Struts, - <strong>Struts-Faces</strong>, is also in early release and available through the - <a href="http://svn.apache.org/builds/jakarta-struts/nightly/struts-faces/">nightly build</a>. - The Struts Faces taglib is expected to work with any compliant JSF implementation, including - <a href="http://www.myfaces.org/">MyFaces</a>. - </p> - <p> - For more about what JavaServer Faces means to the Struts community, - see the <a href="http://wiki.apache.org/struts/StrutsMoreAboutJSF"> - StrutsMoreAboutJSF</a> wiki page. - </p> +<p>For a listing of some Java and Struts Core ISPs, visit the <a href="http://struts.sf.net/community/index.html">Struts Community Resources</a> area on SourceForge.</p> </subsection> <a name="ide"/> -<subsection name="Is there a particularly good IDE to use with Struts"> +<subsection name="Is there a particularly good IDE to use with Struts Core"> <p> Struts should work well with any development environment that you would like to use, as well as with any programmers editor. The members of the Struts development team each use their own tools such as @@ -386,7 +275,7 @@ </subsection> <a name="newsgroup"/> -<subsection name="Is there a Struts newsgroup?"> +<subsection name="Is there an Apache Struts newsgroup?"> <p> Not a usenet group, but the Struts User list can be accessed with your favorite newsgroup reader from the Modified: struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml?rev=330256&r1=330255&r2=330256&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml (original) +++ struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml Wed Nov 2 05:55:48 2005 @@ -4,6 +4,44 @@ <name>Nexus.Core</name> </assembly> <members> + <member name="T:WQD.Core.Controls.FindArgs"> + <summary> + Provide an EventArgs type to interace with FindControls + that can be read or bound via an IDictionary object. + </summary> + + </member> + <member name="F:WQD.Core.Controls.FindArgs.OldArgs"> + <summary> + A reference to the original arguments for an event, if any. + </summary> + + </member> + <member name="F:WQD.Core.Controls.FindArgs.Criteria"> + <summary> + Expose our dictionary instance. + </summary> + + </member> + <member name="M:WQD.Core.Controls.FindArgs.#ctor(System.Collections.IDictionary)"> + <summary> + Create this instance using the given dictionary. + </summary> + + </member> + <member name="M:WQD.Core.Controls.FindArgs.#ctor"> + <summary> + Create a new instance with empty fields. + </summary> + + </member> + <member name="M:WQD.Core.Controls.FindArgs.#ctor(System.EventArgs)"> + <summary> + Create a new instance, setting the old event arguments. + </summary> + <param name="oldArgs">Old Event arguments</param> + + </member> <member name="T:Nexus.Core.Helpers.IViewHelper"> <summary> Provide a facade for use by a code-behind to simplify access to the @@ -23,7 +61,38 @@ </summary> </member> - <!-- Badly formed XML comment ignored for member "M:Nexus.Core.Helpers.IViewHelper.Read(System.Collections.IDictionary,System.Boolean)" --> + <member name="M:Nexus.Core.Helpers.IViewHelper.Read(System.Collections.IDictionary,System.Boolean)"> + <summary> + Read input into the Criteria from a given Dictionary. + </summary> + <param name="criteria">Attributes to add to Critiera</param> + <param name="nullIfEmpty">Set attributes for empty strings to null</param> + + </member> + <member name="M:Nexus.Core.Helpers.IViewHelper.AlertsFor(System.String)"> + <summary> + Return the Alerts for the specifiied ID, + formatted for display by a UI control. + </summary> + <remarks> + If messages are localized or customized, + the helper will return correct version for the user. + UI specific implementation may markup the errors as needed. + </remarks> + + </member> + <member name="M:Nexus.Core.Helpers.IViewHelper.HintsFor(System.String)"> + <summary> + Return the Hints for the specifiied ID, + formatted for display by a UI control. + </summary> + <remarks> + If messages are localized or customized, + the helper will return correct version for the user. + UI specific implementation may markup the errors as needed. + </remarks> + + </member> <member name="P:Nexus.Core.Helpers.IViewHelper.Criteria"> <summary> Store input and output values. @@ -62,6 +131,17 @@ </remarks> </member> + <member name="P:Nexus.Core.Helpers.IViewHelper.AlertsText"> + <summary> + Return the Alerts, including any Fault, formatted for display by a UI control. + </summary> + <remarks> + If messages are localized or customized, + the helper will return correct version for the user. + UI specific implementation may markup the errors as needed. + </remarks> + + </member> <member name="P:Nexus.Core.Helpers.IViewHelper.HasAlerts"> <summary> Indicate if alerts are queued. @@ -92,17 +172,6 @@ <returns>True if all is well.</returns> </member> - <member name="P:Nexus.Core.Helpers.IViewHelper.ErrorsText"> - <summary> - Return the Alerts, including any Fault, formatted for display by a UI control. - </summary> - <remarks> - If messages are localized or customized, - the helper will return correct version for the user. - UI specific implementation may markup the errors as needed. - </remarks> - - </member> <member name="P:Nexus.Core.Helpers.IViewHelper.Hints"> <summary> Record a list of hint (or advisory) messages, @@ -247,26 +316,29 @@ </remarks> </member> - <member name="P:Nexus.Core.Helpers.ViewHelper.Profile"> - <summary> - Provide the user Profile for this Helper, if any. - </summary> - - </member> <member name="T:Nexus.Core.Profile.IProfile"> <summary> Record user settings. </summary> + </member> <member name="P:Nexus.Core.Profile.IProfile.UserId"> <summary> Record the User ID. </summary> + </member> <member name="P:Nexus.Core.Profile.IProfile.UserLocale"> <summary> Record the User Locale. </summary> + + </member> + <member name="P:Nexus.Core.Profile.IProfile.Criteria"> + <summary> + Record other default settings. + </summary> + </member> <member name="T:Nexus.Core.Profile.UserIdentity"> <summary> @@ -374,6 +446,17 @@ <param name="name">A Identity Name that may contain a machine name reference</param> <returns>Identity name with machine name removed</returns> </member> + <member name="F:Nexus.Core.Profile.UserProfile._UserLocale"> + <summary> + Provide a field for UserLocale property. + </summary> + </member> + <member name="F:Nexus.Core.Profile.UserProfile._Criteria"> + <summary> + Provide a field for Criteria property. + </summary> + + </member> <member name="M:Nexus.Core.Profile.UserProfile.#ctor"> <summary> Instantiate a default profile. @@ -405,7 +488,7 @@ Record the user id portion of the Identity Name. </summary> <remarks><p> - The UserId can be used to related staff records to user logins. + The UserId can be used to relate staff records to user logins. </p></remarks> </member> <member name="T:Nexus.Core.Tables.FieldContext"> @@ -519,6 +602,17 @@ </summary> </member> + <member name="M:Nexus.Core.Tables.IFieldTable.NewFieldContext(System.String)"> + <summary> + Factory method to create a stub context + when field is required and Strict is false. + </summary> + <remarks><p> + The IFieldContext instance should provide a default for Required. + </p></remarks> + <param name="id">The fieldname</param> + <returns>New default context for ID</returns> + </member> <member name="M:Nexus.Core.Tables.IFieldTable.GetFieldContext(System.String)"> <summary> Obtain the FieldContext for the given ID, observing Strict setting. @@ -881,7 +975,7 @@ </member> <member name="P:Nexus.Core.Validators.IProcessorContext.Target"> <summary> - Reorod the target value after conversion or formatting. + Record the target value after conversion or formatting. </summary> </member> @@ -1628,44 +1722,6 @@ <summary> Token for Entry Item command name. </summary> - </member> - <member name="T:WQD.Core.Controls.FindArgs"> - <summary> - Provide an EventArgs type to interace with FindControls - that can be read or bound via an IDictionary object. - </summary> - - </member> - <member name="F:WQD.Core.Controls.FindArgs.OldArgs"> - <summary> - A reference to the original arguments for an event, if any. - </summary> - - </member> - <member name="F:WQD.Core.Controls.FindArgs.Criteria"> - <summary> - Expose our dictionary instance. - </summary> - - </member> - <member name="M:WQD.Core.Controls.FindArgs.#ctor(System.Collections.IDictionary)"> - <summary> - Create this instance using the given dictionary. - </summary> - - </member> - <member name="M:WQD.Core.Controls.FindArgs.#ctor"> - <summary> - Create a new instance with empty fields. - </summary> - - </member> - <member name="M:WQD.Core.Controls.FindArgs.#ctor(System.EventArgs)"> - <summary> - Create a new instance, setting the old event arguments. - </summary> - <param name="oldArgs">Old Event arguments</param> - </member> </members> </doc> Modified: struts/sandbox/trunk/overdrive/PhoneBook/Core/PhoneBook.Core.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Core/PhoneBook.Core.xml?rev=330256&r1=330255&r2=330256&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Core/PhoneBook.Core.xml (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Core/PhoneBook.Core.xml Wed Nov 2 05:55:48 2005 @@ -4,22 +4,70 @@ <name>PhoneBook.Core</name> </assembly> <members> - <member name="T:PhoneBook.Core.Commands.AppCommand"> + <member name="T:PhoneBook.Core.Commands.BaseMapper"> <summary> - Add data access methods to RequestCommand. + Extend RequestCommand with data access methods. </summary> </member> + <member name="F:PhoneBook.Core.Commands.BaseMapper._Mapper"> + <summary> + Provide a field for Mapper property. + </summary> + + </member> + <member name="M:PhoneBook.Core.Commands.BaseMapper.IsEmpty(System.String)"> + <summary> + Indicate whether string is null or zero length. + </summary> + <param name="input">Input to validate</param> + <returns>True if string is nyull or zero length</returns> + + </member> + <member name="M:PhoneBook.Core.Commands.BaseMapper.GuidString"> + <summary> + Create new Global Universal Identifer as a formatted string. + </summary> + <returns>String representing a new GUID</returns> + <remarks><p> + No two calls to this method will ever return duplicate strings. + </p></remarks> + + </member> + <member name="P:PhoneBook.Core.Commands.BaseMapper.Mapper"> + <summary> + Expose a preconfigured SqlMapper instance that Commands can use to run statements. + </summary> + <remarks><p> + Commands use Mapper to invoke SqlMap statements, such as + <code> + object row = Mapper.QueryForObject (QueryID, context); + </code>. + </p><p> + Any SqlMapper API method may be called. + </p><p> + The default behavior of BAseNexusCommand is to use the + command ID if the QueryID is null. + </p></remarks> + <returns>Preconfigured Mapper instance</returns> + + </member> + <member name="T:PhoneBook.Core.Commands.BaseCount"> + <summary> + Invoke a query that returns the count of a result set. + </summary> + </member> <member name="T:PhoneBook.Core.Commands.BaseEntry"> <summary> - Execute database statement for QueryID for a single object, + Execute database statement indicated by QueryID + for a single object, returning each attribute in the main context. </summary> </member> <member name="T:PhoneBook.Core.Commands.BaseFilterList"> <summary> - Execute database statement for QueryID + Execute database statement indicated by QueryID and wrap result in KeyValue objects so that lists can be displayed by standard methods. </summary> @@ -27,42 +75,67 @@ </member> <member name="T:PhoneBook.Core.Commands.BaseList"> <summary> - Execute database statement for QueryID, - convert list returned to an AppContextList, - and place converted list in context under ID. + Execute database statement indicated by QueryID, + for a list of objects + returning each attribute in the main context. </summary> </member> <member name="T:PhoneBook.Core.Commands.BaseSave"> <summary> - Base Command for saving an Entity to the persistant store (database). + Store an entity for future reference. + </summary> + + </member> + <member name="F:PhoneBook.Core.Commands.BaseSave._KeyID"> + <summary> + Provide a field for KeyID property. </summary> + + </member> + <member name="F:PhoneBook.Core.Commands.BaseSave._InsertID"> + <summary> + Provide a field for InsertID property. + </summary> + </member> + <member name="F:PhoneBook.Core.Commands.BaseSave._UpdateID"> + <summary> + Provide a field for UpdateID property. + </summary> + </member> <member name="M:PhoneBook.Core.Commands.BaseSave.Save(Nexus.Core.IRequestContext,System.String,System.String,System.String)"> <summary> + Insert or update an entity to the persistent store. + </summary> + <remark><p> If the "fieldID" is empty, use the insertID statement, otherwise, use the updateID statement. - </summary> + </p></remark> <param name="context">The INexusContext we are processing.</param> <param name="fieldID">The name of the key field.</param> <param name="insertID">The name of the "insert" mapping for the Entity.</param> <param name="updateID">The name of the "update" mapping for the Entity.</param> <returns>False</returns> + </member> <member name="P:PhoneBook.Core.Commands.BaseSave.KeyID"> <summary> - The name of the key field. + Record the unique identifier for the entity. </summary> + </member> <member name="P:PhoneBook.Core.Commands.BaseSave.InsertID"> <summary> - The name of the "insert" mapping for the Entity. + Record the name of the "insert" mapping for the entity. </summary> + </member> <member name="P:PhoneBook.Core.Commands.BaseSave.UpdateID"> <summary> - The name of the "update" mapping for the Entity. + Record the name of the "update" mapping for the entity. </summary> + </member> <member name="T:PhoneBook.Core.App"> <summary> @@ -118,6 +191,24 @@ </summary> </member> + <member name="F:PhoneBook.Core.App.ITEM_LIMIT"> + <summary> + Token for SQL LIMIT clause. + </summary> + + </member> + <member name="F:PhoneBook.Core.App.ITEM_OFFSET"> + <summary> + Token for SQL OFFSET clause. + </summary> + + </member> + <member name="F:PhoneBook.Core.App.ITEM_COUNT"> + <summary> + Token for SQL COUNT clause. + </summary> + + </member> <member name="F:PhoneBook.Core.App.ENTRY"> <summary> Token for select one command. @@ -199,22 +290,115 @@ </summary> </member> + <member name="F:PhoneBook.Core.AppEntry._Value"> + <summary> + Internal storage. + </summary> + + </member> + <member name="M:PhoneBook.Core.AppEntry.AddAll(System.Collections.IDictionary)"> + <summary> + Add each source entry to our internal store. + </summary> + <remarks><p> + Entries with keys that match the property names will be exposed. + Other entries may be added, but can only be retrieved via Get. + </p></remarks> + <param name="sources">Entries to add</param> + + </member> + <member name="M:PhoneBook.Core.AppEntry.Add(System.String,System.String)"> + <summary> + Add a single entry to our internal store. + </summary> + <remarks><p> + Entries with keys that match the property names will be exposed. + Other entries may be added, but can only be retrieved via Get. + </p></remarks> + <param name="key">ID for entry</param> + <param name="value">Content for entry</param> + + </member> + <member name="M:PhoneBook.Core.AppEntry.Get(System.String)"> + <summary> + Provide the value corresponding to key from the internal store. + </summary> + <param name="key">ID for entry</param> + <returns>Content for entry</returns> + + </member> + <member name="M:PhoneBook.Core.AppEntry.Set(System.String,System.String)"> + <summary> + Set an entry to the internal store, overwriting any existing entry. + </summary> + <remarks><p> + This is a protected method used by the Properties. + Use an existing Property to set values, + or extend the class to include other Properties. + </p></remarks> + <param name="key"></param> + <param name="value"></param> + </member> <member name="T:PhoneBook.Core.AppEntryList"> <summary> - Implement IEntryList for AppEntry objects. + Implement Nexus.Core.IEntryList for AppEntry objects. + </summary> + + </member> + <member name="T:PhoneBook.Core.AppEntryListProcessor"> + <summary> + Implement Nexus.Core.Validators.EntryListProcess for AppEntryList. </summary> </member> <member name="T:PhoneBook.Core.AppUserProfile"> <summary> - Extend UserProfile to include an IsEditor property. + Extend UserProfile to include properties specific to this application, + such as IsEditor. </summary> + + </member> + <member name="F:PhoneBook.Core.AppUserProfile._IsEditor"> + <summary> + Provide a field for IsEditor property. + </summary> + </member> + <member name="F:PhoneBook.Core.AppUserProfile._Entry"> + <summary> + Provide a field for Entry property. + </summary> + + </member> + <member name="F:PhoneBook.Core.AppUserProfile._FullName"> + <summary> + Provide a field for FullName property. + </summary> + </member> <member name="M:PhoneBook.Core.AppUserProfile.#ctor(System.Security.Principal.IIdentity)"> <summary> Instantiate from an IIdentity. </summary> <param name="id">Identity to copy for this profile.</param> + + </member> + <member name="P:PhoneBook.Core.AppUserProfile.IsEditor"> + <summary> + Indicate whether user has editing priveleges. + </summary> + + </member> + <member name="P:PhoneBook.Core.AppUserProfile.Entry"> + <summary> + Record directory entry for user. + </summary> + + </member> + <member name="P:PhoneBook.Core.AppUserProfile.FullName"> + <summary> + Record the user's full name (first and last names). + </summary> + </member> <member name="T:PhoneBook.Core.TelephoneProcessor"> <summary> Modified: struts/site/trunk/xdocs/navigation.xml URL: http://svn.apache.org/viewcvs/struts/site/trunk/xdocs/navigation.xml?rev=330256&r1=330255&r2=330256&view=diff ============================================================================== --- struts/site/trunk/xdocs/navigation.xml (original) +++ struts/site/trunk/xdocs/navigation.xml Wed Nov 2 05:55:48 2005 @@ -146,6 +146,10 @@ href="http://jakarta.apache.org/tapestry/" /> <item + name="Jakarta Turbine" + href="http://jakarta.apache.org/turbine/" + /> + <item name="OS WebWork" href="http://www.opensymphony.com/webwork/" /> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]