Stripes Read Me http://www.stripesframework.org/ Copyright 2005-2008 Tim Fennell Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Contents -------- 1. Overview 2. Features 3. Installation 4. Acknowledgements 5. Feedback 1. Overview -------- Stripes is a Java based framework for developing web applications using JSPs. It is designed with goals of being easy to learn and easy to use. As such it requires minimal up-front configuration, and zero configuration per screen or form. Stripes uses features introduced in JDK 1.5, including annotations and generics, to make developing web applications much easier. Furthermore Stripes is designed to integrate with existing standards like JSTL and to work well with available toolkits like Display Tag. As a result it does not re-invent, or force you to re-invent the wheel, or learn masses of new tags to become productive. 2. Features -------- -> Form beans and Actions are combined into a single ActionBean class -> Configuration of ActionBeans is done 100% through convention and annotations (no XML!) -> ActionBeans provide clean, built in, support for multiple events per form -> Complex ActionBean/form properties are instantiated and assembled for you -> Annotation based Validation system puts Validation info in the ActionBean -> Type Conversion is performed in concert with Validation (where it should be) -> Full support for indexed properties/multi-row forms using Collections -> Form custom tags that feel like HTML tags (no unnecessary renaming of attributes) -> Form tags provide formatting capabilities similar to JSTL formatting tags -> Seamless handling of file uploads -> Direct to JSP navigation isn't frowned on -> Input validation, formatting and tags are all locale aware (but only if you want) -> JavaDoc, TagDoc and reference documentation that doesn't suck 3. Installation ------------ -> Copy the following files into your classpath (preferably WEB-INF/lib for deployment) -> lib/stripes.jar -> lib/commons-logging.jar -> lib/cos.jar -> Copy 'lib/StripesResources.properties' into /WEB-INF/classes or in to another directory ensuring that your build system puts it into the web app classpath -> Include the following in your web.xml <filter> <display-name>Stripes Filter</display-name> <filter-name>StripesFilter</filter-name> <filter-class>net.sourceforge.stripes.controller.StripesFilter</filter-class> </filter> <filter-mapping> <filter-name>StripesFilter</filter-name> <url-pattern>*.jsp</url-pattern> <dispatcher>REQUEST</dispatcher> </filter-mapping> <filter-mapping> <filter-name>StripesFilter</filter-name> <servlet-name>StripesDispatcher</servlet-name> <dispatcher>REQUEST</dispatcher> </filter-mapping> <servlet> <servlet-name>StripesDispatcher</servlet-name> <servlet-class>net.sourceforge.stripes.controller.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>StripesDispatcher</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> -> While the *.action mapping is recommended, you are free to map any pattern you like to the Stripes Dispatcher Servlet in place of, or in addition to, *.action. -> Once you have your first ActionBean configured and working, you may wish to add the following initialization parameter to the StripesFilter in order to speed up the loading of Stripes. The value of the parameter should be a comma-separated list of locations in your classpath where Stripes can expect to discover ActionBeans - by default it searches all entries in your web application's classpath. <init-param> <param-name>ActionResolver.UrlFilters</param-name> <param-value>/WEB-INF/classes</param-value> </init-param> 4. Acknowledgements ---------------- Stripes is distributed with a small number of libraries on which it depends. Those libraries are: -> Jakarta Commons Logging (http://jakarta.apache.org/commons/logging/) Commons logging is used to provide Stripes with a logging mechanism that does not tie it to a specific logging implementation. In reality, most users will probably be using Log4J, and so will need to configure commons logging to point at Log4J. A sample configuration file is included in the example application at: examples/src/commons-logging.properties Commons Logging is licensed under the Apache License Version 2.0, a copy of which is included in lib/commons-logging.license -> COS or com.oreilly.servlets by Jason Hunter (http://servlets.com/cos/) COS provides one of only a couple of good implementations to handle HTTP multipart uploads. And it's the only one to do it without requiring a whole host of other dependent libraries (shame on you commons upload!). COS, distributed with Stripes, is licensed under a specific license agreed upon between the authors of COS and Stripes, that is less restrictive than the standard license. Please read the license carefully. It can be found at lib/cos.license 5. Feedback -------- Your feedback on Stripes (hopefully constructive) is always welcome. Please visit http://stripesframework.org/ for links to browse and join mailing lists, file bugs and submit feature requests.