[Struts Wiki] Update of "StrutsMavenRelease" by TedHusted
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by TedHusted: http://wiki.apache.org/struts/StrutsMavenRelease The comment on the change is: Update notes to use revision to tag repository -- == 1. Releasing Struts 1 == + ''The sample code uses Struts 1.3.5. For a subsequent release, substitute the approriate version number.'' - 1. Create the new directory on people.apache.org, for example people.apache.org/dist/struts/v1.3.x (no, don't actually use 'x') - 1. Ensure that your settings.xml contains a for apache.snapshots (see the Suggested Settings section on StrutsMaintenanceMaven) - 1. Clear out your local Maven repo - 1. Build and test all jar and war artifacts. Build and deploy the website. - 1. Build and deploy (jars and poms only) to the snapshot/test build repo. - 1. Create the assembly and upload it to people.apache.org/dist - 1. Make sure that everything under maven-snapshot-repository/org/apache/struts/ and www/struts.apache.org/struts1.x is group writeable - 1. Create and upload signatures for all .jar and .pom files in maven-snapshot-repository, and the .zip assembly files. {{{ - ~/svn/struts/STRUTS_1_3_X + $ svn co -r 422607 https://svn.apache.org/repos/asf/struts/struts1/trunk STRUTS1_422607 + $ cd STRUTS1_422607 $ rm -rf $M2_REPO/org/apache/struts $ mvn install site site:deploy -P apps,itest $ mvn deploy -P pre-assembly $ cd assembly $ mvn assembly:assembly - $ scp target/assembly/out/* people.apache.org:/www/people.apache.org/dist/struts/v1.3.x + $ scp target/assembly/out/* people.apache.org:/www/people.apache.org/dist/struts/v1.3.5 + $ svn copy https://svn.apache.org/repos/asf/struts/struts1/trunk https://svn.apache.org/repos/asf/struts/struts1/tags/STRUTS_1_3_5 -r 422607 -m "Tagged Struts 1.3.5 at revision 422607" + $ cd ../../ + $ svn co https://svn.apache.org/repos/asf/struts/struts1/tags/STRUTS_1_3_5 }}} + + 1. Ensure that your settings.xml contains a for apache.snapshots (see the Suggested Settings section on StrutsMaintenanceMaven) + 1. Create the new directory on people.apache.org:/www/people.apache.org/builds/struts + 1. Obtain a fresh checkout of the revision to release. (See sample code line 1.) + 1. Clear out your local org/apache/struts Maven repositiory. + 1. Build and test all jar and war artifacts. Build and deploy the website. + 1. Build and deploy (jars and poms only) to the snapshot/test build repository. + 1. Create the assembly and upload it to people.apache.org/builds/struts/ (Lines 5-7.) + 1. Tag the revision from step 2 + 1. Obtain a clean checkout of the tag. Confirm that SVN revision numbers in pom.xml's match. + 1. Ensure that everything under maven-snapshot-repository/org/apache/struts/ and www/struts.apache.org/struts/1.x is group writeable. + 1. Create and upload signatures for all .jar and .pom files in maven-snapshot-repository, and the .zip assembly files. == 2. Releasing the struts-parent pom ==
[Struts Wiki] Update of "StrutsHaiku" by GeorgeDinwiddie
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by GeorgeDinwiddie: http://wiki.apache.org/struts/StrutsHaiku The comment on the change is: fix formatting -- }}}JamesTurner{{{ try { - {{{ System.out.println("Why do I persist"); + System.out.println("Why do I persist"); System.out.println("Crazy, this now has become"); - System.out.println("Must shoot myself now"); }}} + System.out.println("Must shoot myself now"); } catch( HaikuParsingException e ) { - {{{ log.error( e.toString() ); }}} + log.error( e.toString() ); } }}}RickReumann{{{
[Struts Wiki] Update of "StrutsHaiku" by GeorgeDinwiddie
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by GeorgeDinwiddie: http://wiki.apache.org/struts/StrutsHaiku The comment on the change is: fixed another broken formatting -- But the formset was the action variation. }}}JamesTurner{{{ - I once knew a man good with css files His struts-config went on for miles Then Cedric came along @@ -94, +93 @@ Now he does everything with Tiles. Oh great!!! Geek Poets!!! - - }}} - -- - JamesMitchell{{{ + }}}--JamesMitchell{{{ Struts config is 'broke' wonder who came up with these X-M-L tag names? - - --John Hethcox + }}}--John Hethcox{{{ + - - - - Struts and Tiles are cool. But what I prefer in fall? Indoors swimming pool. + }}}Miroslav Hornik - Miroslav Hornik - }}} -
[Struts Wiki] Trivial Update of "StrutsMavenRelease" by WendySmoak
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by WendySmoak: http://wiki.apache.org/struts/StrutsMavenRelease The comment on the change is: Fix path to /builds (instead of /dist) -- $ mvn deploy -P pre-assembly $ cd assembly $ mvn assembly:assembly - $ scp target/assembly/out/* people.apache.org:/www/people.apache.org/dist/struts/v1.3.5 + $ scp target/assembly/out/* people.apache.org:/www/people.apache.org/builds/struts/v1.3.5 $ svn copy https://svn.apache.org/repos/asf/struts/struts1/trunk https://svn.apache.org/repos/asf/struts/struts1/tags/STRUTS_1_3_5 -r 422607 -m "Tagged Struts 1.3.5 at revision 422607" $ cd ../../ $ svn co https://svn.apache.org/repos/asf/struts/struts1/tags/STRUTS_1_3_5
svn commit: r422743 - /struts/site/src/site/fml/roadmap.fml
Author: husted Date: Mon Jul 17 08:42:40 2006 New Revision: 422743 URL: http://svn.apache.org/viewvc?rev=422743&view=rev Log: SITE-8 Typos. Modified: struts/site/src/site/fml/roadmap.fml Modified: struts/site/src/site/fml/roadmap.fml URL: http://svn.apache.org/viewvc/struts/site/src/site/fml/roadmap.fml?rev=422743&r1=422742&r2=422743&view=diff == --- struts/site/src/site/fml/roadmap.fml (original) +++ struts/site/src/site/fml/roadmap.fml Mon Jul 17 08:42:40 2006 @@ -161,7 +161,7 @@ probably find a MVC framework useful. -When choosing a framework, two keys considerations are +When choosing a framework, two key considerations are which user interface technology and which version of Java you would like to use. Popular user interface technologies include @@ -381,7 +381,7 @@ Over the years, the Struts 1 framework grew to include not only a controller and a set of taglibs but several other comonents, like EL, Faces, Taglib, and Scripting. There were also some -optional classes that some people liked, but not everyone needed +optional classes that some people like, but not everyone needs (like DispatchAction).
svn commit: r422745 - in /struts/struts2/trunk: core/pom.xml extras/pom.xml pom.xml src/site/site.xml
Author: husted Date: Mon Jul 17 08:48:34 2006 New Revision: 422745 URL: http://svn.apache.org/viewvc?rev=422745&view=rev Log: WW-1367 Change reference from 2.0 to 2.x Modified: struts/struts2/trunk/core/pom.xml struts/struts2/trunk/extras/pom.xml struts/struts2/trunk/pom.xml struts/struts2/trunk/src/site/site.xml Modified: struts/struts2/trunk/core/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/pom.xml?rev=422745&r1=422744&r2=422745&view=diff == --- struts/struts2/trunk/core/pom.xml (original) +++ struts/struts2/trunk/core/pom.xml Mon Jul 17 08:48:34 2006 @@ -15,7 +15,7 @@ apache-site - scp://people.apache.org/www/struts.apache.org/2.0/struts-core + scp://people.apache.org/www/struts.apache.org/2.x/struts-core @@ -288,10 +288,10 @@ 1.1 test - - easymock - easymock - + +easymock +easymock + Modified: struts/struts2/trunk/extras/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/extras/pom.xml?rev=422745&r1=422744&r2=422745&view=diff == --- struts/struts2/trunk/extras/pom.xml (original) +++ struts/struts2/trunk/extras/pom.xml Mon Jul 17 08:48:34 2006 @@ -15,7 +15,7 @@ apache-site - scp://people.apache.org/www/struts.apache.org/2.0/struts-extras + scp://people.apache.org/www/struts.apache.org/2.x/struts-extras Modified: struts/struts2/trunk/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/pom.xml?rev=422745&r1=422744&r2=422745&view=diff == --- struts/struts2/trunk/pom.xml (original) +++ struts/struts2/trunk/pom.xml Mon Jul 17 08:48:34 2006 @@ -71,7 +71,7 @@ apache-site -scp://people.apache.org/www/struts.apache.org/2.0/ +scp://people.apache.org/www/struts.apache.org/2.x/ @@ -217,7 +217,7 @@ - + snapshots-maven-codehaus snapshots-maven-codehaus Modified: struts/struts2/trunk/src/site/site.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/src/site/site.xml?rev=422745&r1=422744&r2=422745&view=diff == --- struts/struts2/trunk/src/site/site.xml (original) +++ struts/struts2/trunk/src/site/site.xml Mon Jul 17 08:48:34 2006 @@ -14,7 +14,7 @@ http://www.apache.org"; /> http://struts.apache.org/1.x"; /> -http://struts.apache.org/2.0"; /> +http://struts.apache.org/2.x"; />
svn commit: r422747 - in /struts/sandbox/trunk: src/site/site.xml tiles/src/site/site.xml
Author: husted Date: Mon Jul 17 08:49:49 2006 New Revision: 422747 URL: http://svn.apache.org/viewvc?rev=422747&view=rev Log: WW-1367 Change reference from 2.0 to 2.x Modified: struts/sandbox/trunk/src/site/site.xml struts/sandbox/trunk/tiles/src/site/site.xml Modified: struts/sandbox/trunk/src/site/site.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/src/site/site.xml?rev=422747&r1=422746&r2=422747&view=diff == --- struts/sandbox/trunk/src/site/site.xml (original) +++ struts/sandbox/trunk/src/site/site.xml Mon Jul 17 08:49:49 2006 @@ -15,7 +15,7 @@ http://www.apache.org"; /> http://struts.apache.org/1.x"; /> -http://struts.apache.org/2.0"; /> +http://struts.apache.org/2.x"; /> http://struts.apache.org/struts-sandbox"; /> Modified: struts/sandbox/trunk/tiles/src/site/site.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/src/site/site.xml?rev=422747&r1=422746&r2=422747&view=diff == --- struts/sandbox/trunk/tiles/src/site/site.xml (original) +++ struts/sandbox/trunk/tiles/src/site/site.xml Mon Jul 17 08:49:49 2006 @@ -15,7 +15,7 @@ http://www.apache.org"; /> http://struts.apache.org/1.x"; /> -http://struts.apache.org/2.0"; /> +http://struts.apache.org/2.x"; /> http://struts.apache.org/struts-sandbox/tiles"; />
[Struts Wiki] Trivial Update of "StrutsMavenRelease" by TedHusted
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by TedHusted: http://wiki.apache.org/struts/StrutsMavenRelease The comment on the change is: Fix path -- $ mvn deploy -P pre-assembly $ cd assembly $ mvn assembly:assembly - $ scp target/assembly/out/* people.apache.org:/www/people.apache.org/builds/struts/v1.3.5 + $ scp target/assembly/out/* [EMAIL PROTECTED]:/www/people.apache.org/builds/struts/1.3.5 $ svn copy https://svn.apache.org/repos/asf/struts/struts1/trunk https://svn.apache.org/repos/asf/struts/struts1/tags/STRUTS_1_3_5 -r 422607 -m "Tagged Struts 1.3.5 at revision 422607" $ cd ../../ $ svn co https://svn.apache.org/repos/asf/struts/struts1/tags/STRUTS_1_3_5
[Struts Wiki] Update of "DaoRelated" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/DaoRelated -- Since Struts does not deal with or dictate the data layer, (DAO, etc), you are free to choose whatever you like. - In fact, here are some DAO tutorials (related to Struts): + == iBatis == - * http://www.reumann.net/struts/ibatisLesson1.do Reumann iBatis + * http://ibatis.apache.org/javadownloads.html -- iBatis website + Some iBatis tutorials, related to Struts: + + * http://www.learntechnology.net/struts-ibatis.do -- Using Struts with iBatis + * http://www.learntechnology.net/struts-spring-ibatis.do -- Using Struts with iBatis and Spring + * http://ibatis.apache.org/javadownloads.html -- Download and analyze J!PetStore application, it is written with iBatis/Struts by iBatis developers +
[Struts Wiki] Update of "StrutsDocConfiguring" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsDocConfiguring The comment on the change is: Removed obsolete notes -- - Typo. In the "Configuring Applications" chapter (chapter 5), section 5.5 says: + For SRV 2.2 and prior containers TLD files should be referenced in {{{web.xml}}} file using "taglib" element, for example: - ''Servlet 2.3 Users: See section 4.5.3.1 for how to avoid copying the tlds into your application.'' - - The "section 4.5.3.1" is a link to http://jakarta.apache.org/struts/userGuide/configuration.html#dd_config_taglib_23 -- which is actually - section 5.4.3.1. So, it appears that the '4' and '5' are transposed. - - ''This has been fixed in CVS. It might be more effective to enter small notes like this as Bugzilla tickets. However, we'll leave this page here until sometime after a new copy of the site is deployed.'' - - - - - In Chapter 6.2 Installation, subsection 'Install A Struts Binary Distribution' it says that you should add the following lines to web.xml: {{{ - - /WEB-INF/struts-bean.tld - /WEB-INF/struts-bean.tld - - - - /WEB-INF/struts-html.tld - /WEB-INF/struts-html.tld - - - - /WEB-INF/struts-logic.tld - /WEB-INF/struts-logic.tld - - }}} - But I think that it should be: {{{ - /tags/struts-bean /WEB-INF/struts-bean.tld @@ -46, +19 @@ }}} + For SRV 2.3+ containers the above definition is redundant, the container will search inside JAR files in the war\lib directory and will load TLD information from a suitable one. For this to work the JAR files must contain TLD files in META-INF\tld folder (struts-taglib-x.jar file does contain difintions for Struts tags). +
svn commit: r422901 - in /struts/maven/trunk/struts2-archetype-starter: ./ src/main/resources/META-INF/ src/main/resources/archetype-resources/src/main/java/com/myComp/myApp/ src/main/resources/archet
Author: mrdon Date: Mon Jul 17 15:30:04 2006 New Revision: 422901 URL: http://svn.apache.org/viewvc?rev=422901&view=rev Log: Bringing the Maven 2 archetype uptodate WW-1359 Added: struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/main/resources/struts.xml - copied, changed from r422891, struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/main/resources/xwork.xml Removed: struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/main/resources/xwork.xml Modified: struts/maven/trunk/struts2-archetype-starter/README.txt struts/maven/trunk/struts2-archetype-starter/src/main/resources/META-INF/archetype.xml struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/main/java/com/myComp/myApp/HelloWorldAction.java struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/main/java/com/myComp/myApp/IndexAction.java struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/main/resources/struts.properties struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/dwr.xml struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/test/java/com/myComp/myApp/HelloWorldActionTest.java struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/test/java/com/myComp/myApp/IndexActionTest.java Modified: struts/maven/trunk/struts2-archetype-starter/README.txt URL: http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-starter/README.txt?rev=422901&r1=422900&r2=422901&view=diff == --- struts/maven/trunk/struts2-archetype-starter/README.txt (original) +++ struts/maven/trunk/struts2-archetype-starter/README.txt Mon Jul 17 15:30:04 2006 @@ -1,16 +1,16 @@ INFORMATION === -- This is Struts2's maven archetype plugin. +- This is Struts 2's maven archetype plugin. - To be used to create a simple webapp template that one could alter to meet his/her needs. - The created template contains - sitemesh integeration - - a simple Struts2 action - - a simple Struts2 action level validation - - a simple Struts2 action alias level validation - - a simple Struts2 global conversion - - a simple Struts2 action level conversion - - a simple Struts2 global resource bundle - - a simple Struts2 action level resource bundle + - a simple Struts action + - a simple Struts action level validation + - a simple Struts action alias level validation + - a simple Struts global conversion + - a simple Struts action level conversion + - a simple Struts global resource bundle + - a simple Struts action level resource bundle USAGE Modified: struts/maven/trunk/struts2-archetype-starter/src/main/resources/META-INF/archetype.xml URL: http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-starter/src/main/resources/META-INF/archetype.xml?rev=422901&r1=422900&r2=422901&view=diff == --- struts/maven/trunk/struts2-archetype-starter/src/main/resources/META-INF/archetype.xml (original) +++ struts/maven/trunk/struts2-archetype-starter/src/main/resources/META-INF/archetype.xml Mon Jul 17 15:30:04 2006 @@ -11,7 +11,7 @@ src/main/resources/com/myComp/myApp/HelloWorldAction-validation.xml src/main/resources/com/myComp/myApp/HelloWorldAction-helloWorld-validation.xml src/main/resources/com/myComp/myApp/IndexAction-conversion.properties - src/main/resources/xwork.xml + src/main/resources/struts.xml src/main/resources/xwork-conversion.properties src/main/resources/struts.properties src/main/webapp/ftl/index.ftl Modified: struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/main/java/com/myComp/myApp/HelloWorldAction.java URL: http://svn.apache.org/viewvc/struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/main/java/com/myComp/myApp/HelloWorldAction.java?rev=422901&r1=422900&r2=422901&view=diff == --- struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/main/java/com/myComp/myApp/HelloWorldAction.java (original) +++ struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/main/java/com/myComp/myApp/HelloWorldAction.java Mon Jul 17 15:30:04 2006 @@ -17,7 +17,7 @@ */ package com.myComp.myApp; -import com.opensymphony.xwork.ActionSupport; +import com.opensymphony.xwork2.ActionSupport; /** * Modified: struts/maven/trunk/struts2-archetype-starter/src/main/resources/archetype-resources/src/main/java/com/myComp/myApp/IndexActi
[Struts Wiki] Update of "StrutsWebLinks" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsWebLinks The comment on the change is: Moved ArcMind link to tutorials page -- * http://struts.application-servers.com/ (Struts web site) * http://www.keyboardmonkey.com/next/index.jsp (Struts nesting extension) * http://www.common-controls.com/en/products/index.html (Presentation Layer for struts) - * http://www.arc-mind.com/downloads.htm (Struts Tiles Tutorial) * [http://www.java201.com/resources/browse/12-all.html Struts-related Resources] === Open Source Web Apps Which Use Struts ===
[Struts Wiki] Update of "StrutsTutorials" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsTutorials The comment on the change is: Moved (and fixed) ArcMind links from StrutsWebLinks page -- [https://sourceforge.net/project/showfiles.php?group_id=49385&package_id=74701 free Video solutions ] to Struts Good Practices , code is here [http://sourceforge.net/projects/infonoia basicPortal] - [http://www.laliluna.de/what-is-struts.html What is Struts? Intro to web development and Struts] by Sebastian Hennebrueder + [http://www.laliluna.de/what-is-struts.html What is Struts? Intro to web development and Struts] by Sebastian Hennebrueder -- Introduction how to develop web application and how you can easily map these requirements with struts. We want to provide an understandable explanation for the Model-View-Controller Pattern. - Introduction how to develop web application and how you can easily map these requirements with struts. We want to provide an understandable explanation for the Model-View-Controller Pattern. + [http://www.laliluna.de/first-steps-using-struts-tutorial.html First Struts Tutorial] by Sebastian Hennebrueder -- First Struts Tutorial showing how to create a basic struts application: showing a list, creating, editing and deleting entries. - [http://www.laliluna.de/first-steps-using-struts-tutorial.html First Struts Tutorial] by Sebastian Hennebrueder + [http://www.laliluna.de/first-steps-struts-tiles-tutorial.html Struts Tiles Tutorial] by Sebastian Hennebrueder -- Struts tiles Tutorial with a small working example application. Tiles basics are explained. - First Struts Tutorial showing how to create a basic struts application: showing a list, creating, editing and deleting entries. + [http://www.laliluna.de/integration-struts-ejb-tutorial.html Integration of Struts and EJB] by Sebastian Hennebrueder -- Shows step by step how to integrate Struts and EJB using a small library application. - [http://www.laliluna.de/first-steps-struts-tiles-tutorial.html Struts Tiles Tutorial] by Sebastian Hennebrueder + http://www.arc-mind.com/downloads_protected/tutorials/struts/strutstut.pdf -- Struts Quick Start Tutorial by !ArcMind. + http://www.arc-mind.com/downloads_protected/tutorials/struts/advanced-tiles.pdf -- Master the Struts Tiles Framework Tutorial by !ArcMind. - Struts tiles Tutorial with a small working example application. Tiles basics are explained. - - [http://www.laliluna.de/integration-struts-ejb-tutorial.html Integration of Struts and EJB] by Sebastian Hennebrueder - - Using a small library application we show step by step how to integrate Struts and EJB. Take a look at the StrutsArticles page as well.
[Struts Wiki] Update of "StrutsWebLinks" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsWebLinks The comment on the change is: Removed reference to java201 site, it is already referred to on another page. -- - === Web links that are at least remotely related to Struts in one way or another === - - * http://swik.net/Struts/ (Struts Wiki / RSS reader-feader and tags) - * http://struts.application-servers.com/ (Struts web site) - * http://www.keyboardmonkey.com/next/index.jsp (Struts nesting extension) - * http://www.common-controls.com/en/products/index.html (Presentation Layer for struts) - * [http://www.java201.com/resources/browse/12-all.html Struts-related Resources] - - === Open Source Web Apps Which Use Struts === + === Open Source Web Apps And Libraries Which Use Struts === - - See also !StrutsApplications page. * http://sourceforge.net/projects/personalblog Personalblog - personal blogging application (MIT) * http://sourceforge.net/projects/owx/ eAdmin/OWX (Omniaweb-X) - site management / CMS software (LGPL) @@ -20, +10 @@ * http://www.xplanner.org/ XPlanner - project planning and tracking tool for eXtreme Programming teams (LGPL) * http://rollerweblogger.org/ The Roller Weblogger - multi-user weblogging system (Apache) * http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse AppFuse - pretty good demo application (Apache) - * http://online-commons.tigris.org - Simple CMS system to serve as tutorial for Struts,Tomcat,Hibernate,hsqldb,Java + * http://online-commons.tigris.org - Simple CMS system to serve as tutorial for Struts, Tomcat, Hibernate, hsqldb, Java + * http://swik.net/Struts/ (Struts Wiki / RSS reader-feader and tags) + * http://struts.application-servers.com/ (Struts Layout -- Struts extension) + * http://www.keyboardmonkey.com/next/index.jsp (Struts nesting extension) + + === Commercial Web Apps And Libraries Which Use Struts === + + * http://www.common-controls.com/en/products/index.html (Common Controls - presentation extension for Struts) === Other Applications Using Struts ===
[Struts Wiki] Update of "StrutsTutorials" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsTutorials The comment on the change is: Removed a link pointing to broken page with pesky popups. -- [http://www.niallp.pwp.blueyonder.co.uk/lazyactionform.html Lazy ActionForms] - ''niallp'' [http://www.reumann.net/struts/main.do Struttin' with Struts] by Rick Reumann - - [http://www.geocities.com/topdowndan/docs/webapp/ How to Build a Webapp] Dan Cancro [http://wiki.apache.org/struts/StrutsBook Struts Good Practices ] Online book -
[Struts Wiki] Update of "StrutsDocComments" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsDocComments The comment on the change is: Lazy beans, messages and highlighting fields info moved from StrutsDocComments -- User Guide * Preface * Introduction - * [:StrutsDocModel:Building Model Components] + * Building Model Components + * ... + * !ActionForm Beans + * System State Beans + * Business Logic Beans + * [http://www.niallp.pwp.blueyonder.co.uk/lazyactionform.html Lazy Beans] * ... * [:DaoRelated :Data Access Frameworks] * [:StrutsDocView:Building View Components] + * ... + * Forms and FormBean Interactions +* Automatic Form Population +* Automatic Form Validation +* The Struts Validator + * Page Composition With Tiles +* [http://www.niallp.pwp.blueyonder.co.uk/HelpTagsErrorsAndMessages.html Displaying messages] +* [http://www.niallp.pwp.blueyonder.co.uk/strutshighlight.html Highlighting error fields] * ... * [:StrutsTags:Using Struts tags, JSTL tags and JSP scriptlets] * [:StrutsWidgets:Creating widgets with Struts JSP tag library]
[Struts Wiki] Update of "StrutsTutorials" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsTutorials The comment on the change is: Lazy beans, messages and highlighting fields info moved to StrutsDocComments -- Tutorials that cover Struts: - - [http://www.niallp.pwp.blueyonder.co.uk/HelpTagsErrorsAndMessages.html Struts and Messages] - ''niallp'' - - [http://www.niallp.pwp.blueyonder.co.uk/strutshighlight.html Highlighting Error Fields] - ''niallp'' - - [http://www.niallp.pwp.blueyonder.co.uk/lazyactionform.html Lazy ActionForms] - ''niallp'' [http://www.reumann.net/struts/main.do Struttin' with Struts] by Rick Reumann
[Struts Wiki] Update of "StrutsDocComments" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsDocComments -- * [:StrutsLogging:Logging in Struts] * Upgrading * [:StrutsUpgrade:Notes on Upgrading] + * StrutsTerminology
[Struts Wiki] Update of "StrutsTerminology" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsTerminology New page: This is a stub. Describe Struts Terminology here. == Struts Terms == ''Action class'', ''Action'', ''action'' -- Struts Action class, a request endpoint. ''JSP action'', ''JSP action tag'', ''action tag'' -- one of JSP tag elements: action, directive, declaration, expression, scriptlet, comment. Follows the XML format and always begins with . JSP provides certain functionality through JSP actions such as finding or instantiating a !JavaBean, or navigating to an URL. JSP actions are rarely called "actions" in context of Struts/JSP application to avoid ambiguity.
[Struts Wiki] Update of "StrutsBooks" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsBooks The comment on the change is: Reordered books by release date -- - = Books about Struts = + = Books about Struts (by release date, newer first) = + * [http://www.amazon.de/exec/obidos/ASIN/3937137262/apachesoftwar-20/ Struts - Websites mit Struts 1.2 & 1.3 und Ajax effizient entwickeln] (German) by Matthias WeÃendorf (January 2006) * [http://www.apress.com/book/bookDisplay.html?bID=10180 Pro Apache Struts with Ajax] by John Carnell, Rob Harrop and Kunal Mittal (Ed.) (2006) * [http://www.apress.com/book/bookDisplay.html?bID=10071 Beginning Apache Struts: From Novice to Professional] by Arnold Doray (February 2006) * [http://www.packtpub.com/struts/book Learning Jakarta Struts 1.2: a concise and practical tutorial] by Stephan Wiesner (August 2005) * [http://www.dunod.com/pages/ouvrages/ficheouvrage.asp?id=48635 Struts : les bonnes pratiques pour des développements web réussis] (Français) par Vic Cekvenich, Wolfgang Gehner (Février 2005) * [http://www.amazon.com/exec/obidos/tg/detail/-/059600771X/apachesoftwar-20/ Jakarta Struts Cookbook] by Bill Siggelkow (February 2005) - * [http://www.amazon.com/exec/obidos/tg/detail/-/0596005199/apachesoftwar-20/ Jakarta Struts Pocket Reference] by Chuck Cavaness, Brian Keeton (June 2003) - * [http://www.amazon.com/exec/obidos/tg/detail/-/0596003285/apachesoftwar-20/ Programming Jakarta Struts] by Chuck Cavaness (November 2002) - * [http://www.amazon.com/exec/obidos/tg/detail/-/0764544373/apachesoftwar-20/ Professional Jakarta Struts] by James Goodwill, Richard Hightower (September 2003) * [http://www.amazon.com/exec/obidos/tg/detail/-/0974848808/apachesoftwar-20/ Struts Survival Guide: Basics to Best Practices] by Srikanth Shenoy, Nithin Mallya (February 2004) The ebook version is now available free [http://www.objectsource.com/Struts_Survival_Guide.pdf here] - * [http://www.amazon.com/exec/obidos/tg/detail/-/1930110502/apachesoftwar-20/ Struts In Action] by Ted Husted, Cedric Dumoulin, George Franciscus, and David Winterfeldt; Foreword by Craig R. McClanahan (November 2002) - * [http://www.amazon.com/exec/obidos/tg/detail/-/0672324725/ Struts Kick Start] by James Turner, Kevin Bedell (December 2002) - * [http://www.amazon.com/exec/obidos/tg/detail/-/0596003285/apachesoftwar-20/ Mastering Jakarta Struts] by James Goodwill (September 2002) * [http://www.amazon.com/exec/obidos/tg/detail/-/0072231319/apachesoftwar-20/ Struts: The complete reference] by James Holmes (April 2004) * [http://www.amazon.com/exec/obidos/tg/detail/-/0764559575/apachesoftwar-20/ Jakarta Struts for Dummies] by Mike Robinson, Ellen Finkelstein (March 2004) - * [http://www.amazon.com/exec/obidos/tg/detail/-/1861007817/apachesoftwar-20/ Professional Struts Applications: Building Web Sites with Struts, Object Relational Bridge, Lucene, and Velocity] by John Carnell, Jeff Linwood (March 2003) - * [http://www.amazon.com/exec/obidos/tg/detail/-/1558608621/apachesoftwar-20/ The Struts Framework: Practical Guide for Java Programmers] by Sue Spielman (October 2002) * [http://www.amazon.com/exec/obidos/tg/detail/-/159059228X/apachesoftwar-20/ Pro Jakarta Struts, Second Edition] by John Carnell, Rob Harrop (March 2004) - * [http://www.amazon.com/exec/obidos/tg/detail/-/1932394249/apachesoftwar-20/ Struts Recipes] by George Franciscus, Danilo Gurovick (July 2004) + * [http://www.amazon.com/exec/obidos/tg/detail/-/1932394249/apachesoftwar-20/ Struts Recipes] by George Franciscus, Danilo Gurovich (July 2004) - * Struts Fast Track: J2EE/JSP Framework: Practical Application with Database Access and Struts Extension] by Vic Cekvenich - Sept. 2001 (1st Struts Book) - * [http://www.amazon.com/exec/obidos/tg/detail/-/2744015954/apachesoftwar-20/ Struts] by James Turner, Kevin Bedell (June 2003) * [http://www.amazon.de/exec/obidos/ASIN/3937137068/apachesoftwar-20/ Struts - Websites effizient entwickeln] (German) by Matthias WeÃendorf (November 2004) * [http://www.dpunkt.de/buch/3-89864-284-4.html Struts - Best Practices] (German) by Vic Cekvenich, Wolfgang Gehner (June 2004) * [http://www.amazon.de/exec/obidos/ASIN/3826614313/apachesoftwar-20/ Struts ge-packt] (German) by Michael Albrecht and Manfred Wolff (July 2004) + * [http://www.amazon.com/exec/obidos/tg/detail/-/0596005199/apachesoftwar-20/ Jakarta Struts Pocket Reference] by Chuck Cavaness, Brian Keeton (June 2003) + * [http://www.amazon.com/exec/obidos/tg/detail/-/0764544373/apachesoftwar-20/ Professional Jakarta Struts] by James Goodwill, Richard Hightower (September 2003) + * [http://www.amazon.com/exec/obidos/tg/detail/-/1861007817/apachesoftwar-20/ Profession
[Struts Wiki] Update of "StrutsCatalog" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsCatalog The comment on the change is: Moved best practices to documentation comments -- NOTE: Since this is a '''catalog''', some practices may be mutually exclusive. An application is '''not''' expected to implement every practice in this catalog. A very few of these entries are considered "best practices", the balance being simply "practices". - ''[Please keep entries alphabetical in each section. When contributing entries, please sign the entry for future reference. Please be '''very conservative''' in adding entries under the Best Practices heading. Different teams have different needs which lead to different practices. True Best Practices should be universal.]'' + ''[Please keep entries alphabetical in each section.'' - = Best Practices = - - * StrutsCatalogBaseAction - * StrutsCatalogLinkOnlyToActions - * StrutsCatalogPreconditions - * ["StrutsCatalogDTOImplementation"] = Common Practices = * StrutsCatalogErrorTypes
[Struts Wiki] Update of "StrutsDocComments" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsDocComments The comment on the change is: Integrated best practices from StrutsCatalog page -- * Business Logic Beans * [http://www.niallp.pwp.blueyonder.co.uk/lazyactionform.html Lazy Beans] * ... + * [:StrutsCatalogDTOImplementation:DTO Implementation] * [:DaoRelated :Data Access Frameworks] * [:StrutsDocView:Building View Components] * ... * Forms and FormBean Interactions +* [:StrutsCatalogLinkOnlyToActions:Link Only To Actions] * Automatic Form Population * Automatic Form Validation * The Struts Validator @@ -49, +51 @@ * [:WhyChain:Using of Commons Chain in Struts 1.3.x] * ... * [:StrutsManualActionClasses:Action Classes] +* [:StrutsCatalogPreconditions:Preconditions] +* [:StrutsCatalogBaseAction:Use Base Action] * [:DataEntryForm:Implementing Data Entry Form] * [:EventActionDispatcher:Using Dispatch Actions] * [:StrutsManualActionWebComponent:Developing components with Struts]
[Struts Wiki] Update of "StrutsCatalog" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsCatalog The comment on the change is: Moved relevant practices to documentation comments -- = Common Practices = * StrutsCatalogErrorTypes - * ["StrutsCatalogHidingPagesUnderWEBINF"] * StrutsCatalogHtmlRewrite * StrutsCatalogSegmentApplications - * StrutsCatalogVariableScreenFields - * StrutsCatalogLazyList * StrutsDesignPatterns - * StrutsFileUpload - * StrutsFileDownload - * ApplicationSecurity * StrutsRememberMeCookie
[Struts Wiki] Update of "StrutsDocComments" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsDocComments The comment on the change is: Moved relevant practices from StrutsCatalog page -- * System State Beans * Business Logic Beans * [http://www.niallp.pwp.blueyonder.co.uk/lazyactionform.html Lazy Beans] + * StrutsCatalogLazyList * ... * [:StrutsCatalogDTOImplementation:DTO Implementation] * [:DaoRelated :Data Access Frameworks] @@ -39, +40 @@ * Automatic Form Validation * The Struts Validator * Page Composition With Tiles +* StrutsCatalogVariableScreenFields * [http://www.niallp.pwp.blueyonder.co.uk/HelpTagsErrorsAndMessages.html Displaying messages] * [http://www.niallp.pwp.blueyonder.co.uk/strutshighlight.html Highlighting error fields] * ... @@ -58, +60 @@ * [:StrutsManualActionWebComponent:Developing components with Struts] * [:StrutsManualActionWebComponentSync:Synchronous component (non-Ajax, full page reload)] * [:StrutsManualActionWebComponentAsync:Dual-mode component (Ajax/non-Ajax)] + * Updloading/dowloading files +* StrutsFileUpload +* StrutsFileDownload * ... * [:StrutsDocConfiguring:Configuring Applications] + * Security + * ApplicationSecurity + * ["StrutsCatalogHidingPagesUnderWEBINF"] * [:StrutsDocKickstart:Getting Started] * Release Notes * Installation
svn commit: r422942 - /struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/tour.html
Author: husted Date: Mon Jul 17 19:17:20 2006 New Revision: 422942 URL: http://svn.apache.org/viewvc?rev=422942&view=rev Log: WW-1349 Initial pass on documentation to begin update of MailReader from WebWork to Struts 2. Modified: struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/tour.html Modified: struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/tour.html URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/tour.html?rev=422942&r1=422941&r2=422942&view=diff == --- struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/tour.html (original) +++ struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/tour.html Mon Jul 17 19:17:20 2006 @@ -6,24 +6,24 @@ -A Walking Tour of the Action 2 MailReader Application +A Walking Tour of the Struts 2 MailReader Application -A Walking Tour of the Action 2 MailReader Application +A Walking Tour of the Struts 2 MailReader Application -This article is meant to introduce a new user to Struts Action 2 by "walking +This article is meant to introduce a new user to Apache Struts 2 by "walking through" a simple, but functional, application. -The Action2 MailReader application is based on the 2.2.2 release of OpenSymphony WebWork -(soon to be known as Struts Action 2). +The Struts 2 MailReader application is based on the 2.0.0 version Apache +Struts 2. To follow along, you should install the MailReader application on your own development workstation (e.g. localhost). @@ -34,8 +34,8 @@ This article assumes the reader has a basic understanding of the Java language, JavaBeans, web applications, and JavaServer Pages. For background on these technologies, see the -http://struts.apache.org/struts-action/userGuide/preface.html";> -Preface to the Action 1 User Guide. +http://struts.apache.org/primer.html";> +Key Technologies Primer. @@ -145,8 +145,8 @@ However, use of the standard Java Authentication and Authorization Service (JAAS) is recommended for most applications. (See the http://struts.apache.org/struts-action/userGuide/preface.html";> -Preface to the Action 1 User Guide for more about +href="http://struts.apache.org/primer.html";> +Key Technologies Primer for more about authentication technologies.) @@ -176,7 +176,7 @@ the container reads and parses the "Web Application Deployment Descriptor", or "web.xml" file. The framework plugs into a web application via a servlet filter. -Like any filter, the Action servlet is deployed via the "web.xml". +Like any filter, the Struts 2 filter is deployed via the "web.xml". @@ -186,17 +186,17 @@ "http://java.sun.com/dtd/web-app_2_3.dtd";>- Action2 Mailreader +Struts 2 Mailreader - Action2 +Struts 2 - com.opensymphony.webwork.dispatcher.FilterDispatcher + org.apache.struts2.dispatcher.FilterDispatcher - @@ -229,7 +229,7 @@ -However, most Action 2 applications do not refer to physical pages, +However, most Struts 2 applications do not refer to physical pages, but to "virtual resources" called actions. Actions specify code that we want to be run before a page or other resource renders the response. @@ -248,10 +248,11 @@ The actions are listed in one or more XML configuration files, -the default configuration file being named "xwork.xml". -XWork is a command processing framework that underlies Action 2. -It is not bound to the web layer, making XWork applications easier to test. -Among other things, XWork handles the mapping of a request for a certain +the default configuration file being named "struts.xml". +When the application loads, the struts.xml, and any other files +it includes, are parsed, and the framework creates a set of +configuration objects. +Among other things, the configuration maps a request for a certain page to a certain action mapping. @@ -283,17 +284,17 @@ As an alternative, -we could also have used a JSP page that issued the redirect with Action 2 tags, +we could also have used a JSP page that issued the redirect with Struts 2 tags, but a plain HTML solution works just as well. Welcome.do -When the client requests "Welcome.do", the request is passed to tAction2 +Struts 2 /*
[Struts Wiki] Update of "StrutsTags" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsTags The comment on the change is: Added from Comparison_using_nested_tag_vs_JSTL_for_nested_objects_on_form -- == JSTL tags == + === Comparison using nested tag vs JSTL for nested objects on form === + + Many think that you are required to display nested data using the Nested tag. I agree the Nested tag is the cleaner solution, but just so you are aware you can do this with JSTL as well. (Below assumes JSP2.0) + + companyForm has a List of divisions and for each division in the list there is a list of department objects and we will display the 'name' of each department. + + ''JSTL Solution'' + {{{ + + Division: + + --- Department: + + + }}} + + ''Nested Tag Solution'' + {{{ + + + Division: + + --- Department: + + + + }}} + + == JSP scriptlets == == Ajax Tags ==
[Struts Wiki] Update of "Comparison using nested tag vs JSTL for nested objects on form" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/Comparison_using_nested_tag_vs_JSTL_for_nested_objects_on_form The comment on the change is: Moved content to StrutsTags, "Comparison using nested tag vs JSTL for nested obj -- - === Comparison using nested tag vs JSTL for nested objects on form === + #redirect StrutsTags + ## Content is moved to StrutsTags, "Comparison using nested tag vs JSTL for nested objects on form" - Many think that you are required to display nested data using the Nested tag. I agree the Nested tag is the cleaner solution, but just so you are aware you can do this with JSTL as well. (Below assumes JSP2.0) - - companyForm has a List of divisions and for each division in the list there is a list of department objects and we will display the 'name' of each department. - - ''JSTL Solution'' - {{{ - - Division: - - --- Department: - - - }}} - - ''Nested Tag Solution'' - {{{ - - - Division: - - --- Department: - - - - }}} -
[Struts Wiki] Update of "StrutsWebService" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsWebService New page: By Frank Zammetti, extracted from StrutsSolutions page. Please see [url]http://sourceforge.net/projects/strutsws/ for complete details, but in brief... I decided that, in my case at least, the easiest path "into the application" that could be exposed as a service would actually be the Actions themselves. You may ask, assuming the application was architected properly and the Actions delegated out work to business classes (that IS the case), why not just expose the business classes? The answer is that I wanted to leverage all the form validation and security built in to the app (it was a custom security solution). Because of this, I needed Struts to "do it's thing" leading up to the business class execution. My solution was to write a custom request processor that could recognize a Web Service request (SOAP over HTTP). It would be able to "unroll" the SOAP request, then let Struts process the request as it usually would, and then render the response. My solution does this. I don't claim this is THE way to do Web Services. Far from it. What I WILL claim though is that if you have an existing application and you want to expose parts of it as Web Services, this solution can give you a very easy way to do it, with some limitations of course... First, it is Struts 1.1-only at the moment. Second, the incoming request must be "flat", that is, no nested elements are allowed (aside from children of the root element). Third, only strings are supported, so you lose the notion of true data typing that SOAP gives you. All these details, and plenty more, as well as full source, are available at the linked address above. I welcome any suggestions anyone has. Although I haven't done much on this in a while (because it met my needs as-is), I would love to continue this work if enough people find it useful. 5. Simply put, there is no way to do this. Opening a new window is a strictly client-side activity. You have to "fake it". There's two ways to do it... First, you could simply target your HTML form using the target="_blank" attribute. This will result in whatever response the server sends back appearing in a new window. The down-side to this is you have to know before-hand to do this. If you want a variable solution, you have to get into scripting... You can set the target attribute's value via client-side scripting as appropiate before submitting the form. Second, you could have a check in all JSP's that looks for some flag in the request object. When present, the JSP inserts an onLoad Javascript event handler that opens the new window and redirects to the URL where the content can be found. Another possibility if you are using frames is to target all form submissions to a hidden frame. Include in all pages some Javascript that performs some checks and handles things accordingly... I use this in one system I wrote... The checks I'm speaking of are based on some flag value in the request object (just insert the value into a page-level Javascript variable)... The flag may direct the page to copy itself to the main display frame, or to a new window. The former is a very nice way to have a "Please Wait" screen while the server is processing. The later is the same basic idea, but in a new window. This also allows you to do some nice error handling things, such as simply hiding the Please Wait layer in the main frame to expose the page as it existed before the form was submitted. Nice way to debuild a page without incurring any server time. But now I'm getting off on a tangent :) The bottom-line here is this: There is no way to direct the browser to open the response in a new window from an Action. You either have to indicate you want this behavior when the form is submitted, or make it happen with scripting once the response is back at the browser. At least, this is true within the confines of plain old HTML... You could always pull an applet out and do something like this!
[Struts Wiki] Update of "StrutsCatalog" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsCatalog The comment on the change is: Added links to StrutsWebService, StrutsPleaseWait -- * StrutsCatalogHtmlRewrite * StrutsCatalogSegmentApplications * StrutsDesignPatterns + * StrutsPleaseWait * StrutsRememberMeCookie + * StrutsWebService
[Struts Wiki] Update of "StrutsSolutions" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsSolutions The comment on the change is: Extracted web service info to StrutsWebService page -- 5. Opening a response in a new window from a Struts Action - 6. ["Comparison using nested tag vs JSTL for nested objects on form"] - - 7. A plug & play solution to adding a "please wait" page to any Struts action: [StrutsPleaseWait] 8. How do I include an anchor name when forwarding from an Action? (i.e., how can I make the page returned to the browser jump to a specific section out of an Action?) @@ -134, +131 @@ } }}} - 4. Please see [url]http://sourceforge.net/projects/strutsws/ for complete details, but in brief... - - I decided that, in my case at least, the easiest path "into the application" that could be exposed as a service would actually be the Actions themselves. You may ask, assuming the application was architected properly and the Actions delegated out work to business classes (that IS the case), why not just expose the business classes? The answer is that I wanted to leverage all the form validation and security built in to the app (it was a custom security solution). Because of this, I needed Struts to "do it's thing" leading up to the business class execution. - - My solution was to write a custom request processor that could recognize a Web Service request (SOAP over HTTP). It would be able to "unroll" the SOAP request, then let Struts process the request as it usually would, and then render the response. My solution does this. - - I don't claim this is THE way to do Web Services. Far from it. What I WILL claim though is that if you have an existing application and you want to expose parts of it as Web Services, this solution can give you a very easy way to do it, with some limitations of course... First, it is Struts 1.1-only at the moment. Second, the incoming request must be "flat", that is, no nested elements are allowed (aside from children of the root element). Third, only strings are supported, so you lose the notion of true data typing that SOAP gives you. - - All these details, and plenty more, as well as full source, are available at the linked address above. I welcome any suggestions anyone has. Although I haven't done much on this in a while (because it met my needs as-is), I would love to continue this work if enough people find it useful. - - 5. Simply put, there is no way to do this. Opening a new window is a strictly client-side activity. You have to "fake it". There's two ways to do it... - - First, you could simply target your HTML form using the target="_blank" attribute. This will result in whatever response the server sends back appearing in a new window. The down-side to this is you have to know before-hand to do this. If you want a variable solution, you have to get into scripting... You can set the target attribute's value via client-side scripting as appropiate before submitting the form. - - Second, you could have a check in all JSP's that looks for some flag in the request object. When present, the JSP inserts an onLoad Javascript event handler that opens the new window and redirects to the URL where the content can be found. - - Another possibility if you are using frames is to target all form submissions to a hidden frame. Include in all pages some Javascript that performs some checks and handles things accordingly... I use this in one system I wrote... The checks I'm speaking of are based on some flag value in the request object (just insert the value into a page-level Javascript variable)... The flag may direct the page to copy itself to the main display frame, or to a new window. The former is a very nice way to have a "Please Wait" screen while the server is processing. The later is the same basic idea, but in a new window. This also allows you to do some nice error handling things, such as simply hiding the Please Wait layer in the main frame to expose the page as it existed before the form was submitted. Nice way to debuild a page without incurring any server time. But now I'm getting off on a tangent :) - - The bottom-line here is this: There is no way to direct the browser to open the response in a new window from an Action. You either have to indicate you want this behavior when the form is submitted, or make it happen with scripting once the response is back at the browser. At least, this is true within the confines of plain old HTML... You could always pull an applet out and do something like this! 8. In theory at least (can someone verify this, I'm being lazy!) you could actually name your forward "myForward#something", and it should work. However, this ties y
[Struts Wiki] Update of "ScriptsFromJava" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/ScriptsFromJava The comment on the change is: Extracted from StrutsSolutions page. New page: Found Online: by Dakota Jack. Extracted from StrutsSolutions page. {{{ package deploy; public class ScriptExec { public static void main(String args[]) { if (args.length < 1) { System.out.println("USAGE: java GoodWindowsExec "); System.exit(1); } try { String osName = System.getProperty("os.name"); String[] cmd = new String[3]; if(osName.equals("Windows XP")) { cmd[0] = "cmd.exe" ; cmd[1] = "/C" ; cmd[2] = args[0]; } else if(osName.equals("Windows NT")) { cmd[0] = "cmd.exe" ; cmd[1] = "/C" ; cmd[2] = args[0]; } else if(osName.equals("Windows 95")) { cmd[0] = "command.com" ; cmd[1] = "/C" ; cmd[2] = args[0]; } Runtime rt = Runtime.getRuntime(); System.out.println("Execing " + cmd[0] + " " + cmd[1] + " " + cmd[2]); Process proc = rt.exec(cmd); // any error message? StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "ERROR"); // any output? StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "OUTPUT"); // kick them off errorGobbler.start(); outputGobbler.start(); // any error??? int exitVal = proc.waitFor(); System.out.println("ExitValue: " + exitVal); } catch (Throwable t) { t.printStackTrace(); } } } package deploy; import java.util.*; import java.io.*; class StreamGobbler extends Thread { private InputStream is; private String type; StreamGobbler(InputStream is, String type) { this.is = is; this.type = type; } public void run() { try { InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line=null; while ((line = br.readLine()) != null) System.out.println(type + ">" + line); } catch (IOException ioe) { ioe.printStackTrace(); } } } }}}
[Struts Wiki] Update of "StrutsCatalog" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsCatalog The comment on the change is: Added link to ScriptsFromJava -- * StrutsCatalogSegmentApplications * StrutsDesignPatterns * StrutsPleaseWait + * ScriptsFromJava * StrutsRememberMeCookie * StrutsWebService
[Struts Wiki] Update of "StrutsJumpingToAnchor" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsJumpingToAnchor The comment on the change is: Extracted from StrutsSolutions page. New page: How do I include an anchor name when forwarding from an Action? (i.e., how can I make the page returned to the browser jump to a specific section out of an Action?) Answer 1. If you name an anchor in your page () and you want the browser to jump to that specific anchor when it is rendered, you would generally do something like if you were doing it from a link. Or, from a servlet, you might attach #something to the end of the page name when using a dispatcher to forward. If you try to append #something to the end of a forward name from an Action though (return mapping.findForward("myForward#something");) you will find that Struts throws an exception about not being able to find the forward. That is because it is looking for a forward that is literally "myForward#something" and won't find it. Answer 2. In theory at least (can someone verify this, I'm being lazy!) you could actually name your forward "myForward#something", and it should work. However, this ties your page design a little too much to your Struts config, and that's probably not a good idea. The better solution is to use a little snippet of Javascript on the client like so: {{{ function jumpToAnchor() { <% if (request.getAttribute("hash") != null) { %> location.hash = "<%=request.getAttribute("hash")%>"; <% } %> } }}} Then, all you need to do is add an attribute named "hash" to the request right before you return the forward from your Action. The value of the attribute is simply the name of the anchor you wish to jump to. Voila, all set!
[Struts Wiki] Update of "StrutsCatalog" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsCatalog -- * StrutsCatalogHtmlRewrite * StrutsCatalogSegmentApplications * StrutsDesignPatterns + * StrutsJumpingToAnchor * StrutsPleaseWait * ScriptsFromJava * StrutsRememberMeCookie
[Struts Wiki] Update of "StrutsSolutions" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsSolutions The comment on the change is: The content has been moved to StrutsDocComments and to StrutsCatalog -- - ##language:en + #redirect StrutsDocComments + ## Cleaning up the page nomenclature. The content of this page has been moved to StrutsDocComments and to StrutsCatalog - = INTRODUCTION = - - This space is to list persistent or general problems and to provide solutions to persistent problems, large and small. This space is meant to provide a place to discuss problems as well as to present your solutions. Please only address problems which are identified consequetively by number and do so by number. Maybe a better organization principle can follow, but this is delightfully informal and still rigorous. Have fun! There is no need for solutions to grapple with one another. There is plenty of room to provide optional solutions. Again, have fun! There are no rules here. Only problems and solutions. The number of problems in serious coding are limited enough not to have to debate whether this or that problem is properly included here. If you have a solution to a problem you had coding in relationship to some Struts project, that is good enough. I will start off with a solution to the problem of running scripts in Java, which I recently had to solve on an ap p that needed hot deploy in Struts. That is a tangential problem and such problems and solutions will be welcome. "No holds barred" in this arena! - - [ Rick Reumann - I don't want to take the liberty of fixing up this page, unless someone wants me to, but shouldn't this "Solutions" page be set up more like an FAQ - where for each solution you would jump off to another page? I'm a bit confused below since it looks like this whole page is addressing the "downloading files" issue? ] - - - = BOOTY = - - == PROBLEMS == - - 1. Downloading Files - - 1.1. Viewing versus downloading the files - - 1.2. Controlling the filename of downloaded files - - 2. Caching images - - 3. Running Scripts from Java Classes - - 4. Exposing Struts-based functions as Web Services - - 5. Opening a response in a new window from a Struts Action - - - 8. How do I include an anchor name when forwarding from an Action? (i.e., how can I make the page returned to the browser jump to a specific section out of an Action?) - - == DISCUSSION OF PROBLEMS (What Is The Problem?) == - - 4. In an application I was architect and lead developer for last year, I was asked to expose certain pieces of functionality of the system as Web Services. This request was made AFTER the application was complete and deployed in production. I did not want to spend a lot of time on this (in fact, COULDN'T) and wanted to change as little code as possible, ideally none. - - 5. I've seen this question asked numerous times on the Struts User's mailing list, so I thought an entry somewhere on the Wiki might be a good idea. The question is usually asked something like "How can I open a new window from an Action?" It's a little vague, but it's along the lines of how can you submit a form and have the response appear in a new window. Usually it's asked within the context of doing it variably, that is, sometimes returning in a new window, sometimes not. - - 8. If you name an anchor in your page () and you want the browser to jump to that specific anchor when it is rendered, you would generally do something like if you were doing it from a link. Or, from a servlet, you might attach #something to the end of the page name when using a dispatcher to forward. If you try to append #something to the end of a forward name from an Action though (return mapping.findForward("myForward#something");) you will find that Struts throws an exception about not being able to find the forward. That is because it is looking for a forward that is literally "myForward#something" and won't find it. - - == DISCUSSION OF SOLUTIONS (What Is The Solution?) == - - 1.1. You can distinguish between inline and attachment (with a filename) in the response content-disposition header. - - 4. I started a mini-project that I grandiosely called the Struts Web Services Enablement Project. - - == SOLUTIONS == - - 1.A. Frank Zammetti's StrutsFileDownload sample webapp - - 3.A. Found Somewhere Online: Dakota Jack - {{{ - package deploy; - - public class ScriptExec { - public static void main(String args[]) { - if (args.length < 1) { - System.out.println("USAGE: java GoodWindowsExec "); - System.exit(1); - } - - try { - String osName = System.getProperty("os.name"); - String[] cmd = new String[3]; - - if(osName.equals("Windows XP")) { -
[Struts Wiki] Update of "FrontPage" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/FrontPage The comment on the change is: Removed link to StrutsSolutions; fixed broken links. -- * StrutsTutorials * StrutsBooks * StrutsCatalog -- Toward an overview of Struts Design Patterns and Practices - * StrutsIDEGuides -- Guides to help IDE users work on and with Struts + * ["StrutsIDEGuides"] -- Guides to help IDE users work on and with Struts * [http://struts.apache.org/kickstart.html Struts Kick Start] -- Newbies Start Here! - * StrutsMoreAboutJSF -- JSF and Struts + * ["StrutsMoreAboutJSF"] -- JSF and Struts - * StrutsSolutions -- A page to find solutions to common "ways of doing things"-type questions * StrutsUniversity -- Business presentations regarding Struts and related technologies * WildcardsForActionMappings -- How to use advance wildcards @@ -52, +51 @@ * StrutsAction1Planning -- Ideas for new versions of Struts 1 * StrutsAction2 -- Discussion on plans/tasks for Struts 2 * StrutsWhiteboard -- Project proposals and discussion - * SAF1RoughSpots -- Discussions of what can be done to continue the evolution of Struts 1 + * ["SAF1RoughSpots"] -- Discussions of what can be done to continue the evolution of Struts 1 * StrutsIdeaJar -- Future feature ideas * StrutsMultipleActionForms -- Discussion on how to support multiple ActionForms for a single action mapping * StrutsWazzup -- Pages on unresolved issues that need more discussion
[Struts Wiki] Update of "StrutsJumpToAnchor" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsJumpToAnchor -- + ## page was renamed from StrutsJumpingToAnchor How do I include an anchor name when forwarding from an Action? (i.e., how can I make the page returned to the browser jump to a specific section out of an Action?) Answer 1. If you name an anchor in your page () and you want the browser to jump to that specific anchor when it is rendered, you would generally do something like if you were doing it from a link. Or, from a servlet, you might attach #something to the end of the page name when using a dispatcher to forward. If you try to append #something to the end of a forward name from an Action though (return mapping.findForward("myForward#something");) you will find that Struts throws an exception about not being able to find the forward. That is because it is looking for a forward that is literally "myForward#something" and won't find it.
[Struts Wiki] Update of "StrutsCatalog" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsCatalog -- * StrutsCatalogHtmlRewrite * StrutsCatalogSegmentApplications * StrutsDesignPatterns - * StrutsJumpingToAnchor + * StrutsJumpToAnchor * StrutsPleaseWait * ScriptsFromJava * StrutsRememberMeCookie
[Struts Wiki] Update of "StrutsTutorials" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsTutorials -- http://www.arc-mind.com/downloads_protected/tutorials/struts/advanced-tiles.pdf -- Master the Struts Tiles Framework Tutorial by !ArcMind. + StrutsUniversity -- Business presentations regarding Struts and related technologies + Take a look at the StrutsArticles page as well.
[Struts Wiki] Update of "StrutsDocComments" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsDocComments The comment on the change is: Moved WildcardsForActionMappings from FrontPage -- * StrutsFileDownload * ... * [:StrutsDocConfiguring:Configuring Applications] + * WildcardsForActionMappings -- How to use advance wildcards * Security * ApplicationSecurity * ["StrutsCatalogHidingPagesUnderWEBINF"]
[Struts Wiki] Update of "FrontPage" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/FrontPage The comment on the change is: StrutsUniversity->StrutsTutorials, WildcardsForActionMappings->StrutsDocComments -- * ["StrutsIDEGuides"] -- Guides to help IDE users work on and with Struts * [http://struts.apache.org/kickstart.html Struts Kick Start] -- Newbies Start Here! * ["StrutsMoreAboutJSF"] -- JSF and Struts - * StrutsUniversity -- Business presentations regarding Struts and related technologies - * WildcardsForActionMappings -- How to use advance wildcards === Project Maintenance and Resources === * StrutsReleasePlans -- Release plans for each Struts release
[Struts Wiki] Update of "StrutsCatalog" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsCatalog The comment on the change is: Moved StrutsMultipleActionForms from FrontPage -- * StrutsCatalogSegmentApplications * StrutsDesignPatterns * StrutsJumpToAnchor + * StrutsMultipleActionForms -- Discussion on how to support multiple ActionForms for a single action mapping * StrutsPleaseWait * ScriptsFromJava * StrutsRememberMeCookie
[Struts Wiki] Update of "FrontPage" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/FrontPage The comment on the change is: Moved StrutsMultipleActionForms to StrutsCatalog page -- === Struts Official Website === * [http://struts.apache.org/ Struts Home Page] + * [http://struts.apache.org/kickstart.html Struts Kickstart FAQ] === Struts Success Stories === * [:PoweredBy:Websites built with Struts] @@ -23, +24 @@ * StrutsLibraries -- Third-party libraries for Struts * StrutsExtensions -- Extensions for Struts - === Struts documentation comments and add-ons === + === Struts documentation comments, Articles, Tutorials, FAQ's and Tips === - * StrutsDocComments -- Comments for the Struts Documentation (examples, how-tos, diagrams, code samples) + * StrutsDocComments -- Comments for the Struts Documentation. Examples, how-tos, diagrams, code samples, proposals and best practices can be found here! * StrutsNewFaqs -- Index of Struts Frequently Asked Question pages - - === Articles, Tutorials, FAQ's and Tips === * StrutsArticles * StrutsTutorials * StrutsBooks * StrutsCatalog -- Toward an overview of Struts Design Patterns and Practices - * ["StrutsIDEGuides"] -- Guides to help IDE users work on and with Struts - * [http://struts.apache.org/kickstart.html Struts Kick Start] -- Newbies Start Here! - * ["StrutsMoreAboutJSF"] -- JSF and Struts === Project Maintenance and Resources === * StrutsReleasePlans -- Release plans for each Struts release @@ -51, +47 @@ * StrutsWhiteboard -- Project proposals and discussion * ["SAF1RoughSpots"] -- Discussions of what can be done to continue the evolution of Struts 1 * StrutsIdeaJar -- Future feature ideas - * StrutsMultipleActionForms -- Discussion on how to support multiple ActionForms for a single action mapping * StrutsWazzup -- Pages on unresolved issues that need more discussion === Training And consultants === * StrutsConsultants * StrutsTraining + === Integration With Other Frameworks === + * ["StrutsMoreAboutJSF"] -- JSF and Struts + === Tools and IDEs === * StrutsTools + * ["StrutsIDEGuides"] -- Guides to help IDE users work on and with Struts === Miscellaneous === * SnapshotGuide11/25/06
[Struts Wiki] Update of "StrutsAction1Planning" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsAction1Planning The comment on the change is: Added stuff from SAF1RoughSpots -- '''Consider a "populate" method on !ActionForm'''. From an OOP standpoint, it might be cleaner if an !ActionForm populated itself rather than rely on a "god" class to populate it from the outside. '''Consider a "!FormContext" mechanism'''. Rather than "throw-away" a request-based !ActionForm, the object could be seralized as a hidden-field or session-object and restored on the next request. Many other frameworks support this behavior now. Struts would have a slightly different spin, since we look at the form as an named entity rather than as an anonymous aggregation of other objects. + - Struts Action Framework 1.6.x considerations + == Struts Action Framework 1.6.x considerations == '''Consider multiple controllers'''. One reason we introduced modules was because "there can only be one" Struts controller in an application. With the context-based changes we making, we might be able to introduce a mechanism to support a collection of Struts controllers, each identified by its servlet or filter name, each with it's own URI pattern. The key to being able to do something like this is for view members to look to the !ViewContext rather than the various servlet contexts. Each Struts controller would place the appropriate !ViewContext in its own requests. @@ -68, +69 @@ A strong goal should be that an application should be usable either as a webapp or as a portlet, with few (ideally no) changes. Therefore, we should build whatever it takes to support this into the standard framework distribution, which could then be used in both environments. + == Other considerations == + + == Code Issues == + + 1. [MichaelJ] '''Consider bringing [https://formdef.dev.java.net/ FormDef] into Struts core''' and recommend using dynaforms with nested business objects as a best practice. Reason: I/O conversion is the suckiest part of Struts 1. + + 1. [MichaelJ] '''Consider the option to call all lifecycle functions explicitly''' from an action class, allow to disable automatic form population. + + * [FrankZ] I personally would not want to see the auto-population and validation and such go away. I think them being declarative is a powerful notion. I DO however agree that a developer should be able to turn them off declaratively and do it all manually. + + 1. [MichaelJ] '''Deprecate automatic validation'''. Newbies always stumble upon the fact that their action class is not called when validation fails. Instead, promote explicit validation. + * [FrankZ] Definite -1 from me. Again, I'm +1 to being able to turn it on and off, but I very much believe it should be there. Perhaps there is some room for better logging in the cases you mention? + + 1. [MichaelJ] '''Deprecate "input" attribute''' of "action" tag in struts-config.xml. At least, rename it to "error" or something. A frequent misconception is to think that the lifecycle starts with displaying an "input" page, which is obviously not true. + * [FrankZ] +0. I don't disagree with you at all, and I think there are probably other things that could similarly be changed. However, I think it is very important that anything done with Struts 1 be evolutionary and take backwards-compatibility into consideration in a big way. I think if you want revolution you go for Struts 2 (a minor revolution in that it's theoretically still compatible) or Shale. + + 1. [MichaelJ] '''Add "form" attribute''' with the same meaning as "name" attribute; deprecate "name". + * [FrankZ] +0. Same comment as the above point. + + 1. [MichaelJ] '''Logically differentiate forward from redirect in mappings''' "forward" tag implements both forward and redirect, this is confusing. Implement two separate tags like "render" for forward and "transfer" for redirect. "forward" tag still can be kept for compatibility purposes. + * [FrankZ] Hmm, I'm not sure how I feel about that. Maybe simply adding a type attribute, ala Webwork, would do the trick? "forward" or "redirect" as values? + * [MichaelJ] Check out this mapping from one of the users of Struts Dialogs 1.x (he uses Tiles too): + + {{{ + + + + + + + + + + + + + + + }}} + + This mapping uses the action mapping format introduced in Struts Dialogs project. A "component" is essentially an "action" with different defaults and some new elements. This is 1:1 correspondence between mapping and action class. Same action class handles input phase as well as render phase (I saw your remark about Redirect-After-Post, here it is, implemented). + + 1. [MichaelJ] '
[Struts Wiki] Update of "SAF1RoughSpots" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/SAF1RoughSpots The comment on the change is: Moved to StrutsAction1Planning -- - Struts 1 (a.k.a. Struts Classic) is a well-known framework. It has its deficiencies, but workarounds are known as well. For many, continuing to use Struts 1 makes sense even after release of Struts 2. This page tries to summarize major issues with Struts 1 and possibilities to fix them or provide better workarounds. + #redirect StrutsAction1Planning - == Code Issues == - - 1. '''I/O conversion''' [MichaelJ] The suckiest part of Struts1 is I/O conversion. [https://formdef.dev.java.net/ FormDef] seem to solve most conversion/validation issues, so bring !FormDef into Struts core and consider using dynaforms with nested business objects as a best practice. - - 1. '''Struts 1 lifecycle''' [MichaelJ] The lifecycle of Struts 1 is quite simple; from a user's perspective it includes just reset/populate/validate functions. Consider the option to call all lifecycle functions explicitly from an action class, no more automatic population. - * [FrankZ] I personally would not want to see the auto-population and validation and such go away. I think them being declarative is a powerful notion. I DO however agree that a developer should be able to turn them off declaratively and do it all manually. - - 1. '''Automatic validation''' [MichaelJ] Deprecate automatic validation, newbies always stumble upon the fact that their action class is not called when validation fails. Instead, promote explicit validation. - * [FrankZ] Definite -1 from me. Again, I'm +1 to being able to turn it on and off, but I very much believe it should be there. Perhaps there is some room for better logging in the cases you mention? - - 1. '''Input attribute''' [MichaelJ] Deprecate "input" attribute of "action" tag in struts-config.xml. At least, rename it to "error" or something. A frequent misconception is to think that the lifecycle starts with displaying an "input" page, which is obviously not true. - * [FrankZ] +0. I don't disagree with you at all, and I think there are probably other things that could similarly be changed. However, I think it is very important that anything done with Struts 1 be evolutionary and take backwards-compatibility into consideration in a big way. I think if you want revolution you go for Struts 2 (a minor revolution in that it's theoretically still compatible) or Shale. - - 1. '''Form attribute''' [MichaelJ] Add "form" attribute with the same meaning as "name" attribute; deprecate "name". - * [FrankZ] +0. Same comment as the above point. - - 1. '''Differentiate forward from redirect in mappings''' [MichaelJ] "forward" tag implements both forward and redirect, this is confusing. Implement two separate tags like "render" for forward and "transfer" for redirect. "forward" tag still can be kept for compatibility purposes. - * [FrankZ] Hmm, I'm not sure how I feel about that. Maybe simply adding a type attribute, ala Webwork, would do the trick? "forward" or "redirect" as values? - * [MichaelJ] Check out this mapping from one of the users of Struts Dialogs 1.x (he uses Tiles too): - - {{{ - - - - - - - - - - - - - - - }}} - - This mapping uses the action mapping format introduced in Struts Dialogs project. A "component" is essentially an "action" with different defaults and some new elements. This is 1:1 correspondence between mapping and action class. Same action class handles input phase as well as render phase (I saw your remark about Redirect-After-Post, here it is, implemented). - - 1. '''!DispatchActions''' [MichaelJ] Having that many dispatching actions in the distro, all of them but !EventDispatchAction and more generic EventActionDispatcher should be deprecated. - * [MichaelJ] On a second thought, let's make all actions to be dispatching actions. If event is recognized for an action, it is dispatched to a corresponding method. If event is not found in the request, then execute() is called like for a regular action. - - 1. '''Tiles improvements''' [MichaelJ] Improve Tiles to support real components, that can be fully independent of composite page, can process user input, and can render themselves. - - 1. '''Per-request Action instantiation''' [FrankZ] Actions should be instantiated for each request, therefore removing the thread safety concerns that exist today. - * [MichaelJ] -0. Not sure that this bothers me anymore, especially if dynaforms will be adopted as standard practice. In this case a dynaform would be a container for a nested business object. I would rather combine Action and !ActionForm and
[Struts Wiki] Update of "FrontPage" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/FrontPage The comment on the change is: Removed link to SAF1RoughSpots, now redirects to StrutsAction1Planning -- * StrutsAction1Planning -- Ideas for new versions of Struts 1 * StrutsAction2 -- Discussion on plans/tasks for Struts 2 * StrutsWhiteboard -- Project proposals and discussion - * ["SAF1RoughSpots"] -- Discussions of what can be done to continue the evolution of Struts 1 * StrutsIdeaJar -- Future feature ideas * StrutsWazzup -- Pages on unresolved issues that need more discussion
[Struts Wiki] Update of "StrutsIdeaJar" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsIdeaJar The comment on the change is: This page seems not relevant anymore. -- + #redirect StrutsAction1Planning + This page lists some ideas people posted to Bugzilla, which couldn't be resolved at the time, but that someone might be to address at a future date. The tickets have been marked closed. @@ -57, +59 @@ -
[Struts Wiki] Update of "StrutsContainerMemoryLeaks" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsContainerMemoryLeaks The comment on the change is: Not relevant to Struts; relates to older Tomcat versions. -- - From: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14042 + deleted - Using the hotdeploy feature of JBoss with struts enabled applications yields to - OutOfMemory-Exceptions. JBoss tries to undeploy the old application and - releases all references to it, but the allocated object are never garbage - collected. Since this happens with Jetty as well as with Tomcat I assume it's a - bug in Struts with cyclic references. - {{{ }}} - Steps to reproduce: - 1) Install a vanilla JBoss 3.x - 2) Copy jakarta-struts-1.1-b2-blank.war into server/default/deploy - 3) Start JBoss - 4) Touch/copy server/default/deploy/jakarta-struts-1.1-b2-blank.war - 5) Wait a little bit to let JBoss finish the redeploy - 6) Go to step 4 - {{{ }}} - Under linux you can see with "ps -p -h -o rss" that the memory - usage is constantly increasing. With "lsof -p | grep - jakarta-struts-1.1-b2-blank.war" you can monitor references to the old - deployments. - - - --- Additional Comments From David Graham 2002-10-29 15:12 --- - - It's more likely a bug in JBoss as I haven't heard of this issue before. BTW, at least Sun's jvm - handles circular object references so they will get garbage collected. We need more proof that - this is a Struts issue. I'll leave this open for now... - - - --- Additional Comments From James Mitchell 2002-10-29 17:14 --- - - Could you please retest this on an unmodified Tomcat (standalone) install? - - - --- Additional Comments From Marco Ladermann 2002-10-30 09:10 --- - - Okay, the problem is not JBoss specific. - With a plain Tomcat 4.0.6 I added in server.xml a reloadable context: - {{{ }}} - - }}} - Then I forced reloads every 15 seconds with: - {{{ }}} - while true - do - {{{ touch webapps/jakarta-struts-1.1-b2-blank/WEB-INF/lib/struts.jar - sleep 15 - ps -p -h -o rss }}} - done - {{{ }}} - and the memory usage increased step by step from 30M to 155M, where the JVM - began to throw OutOfMemoryExceptions. - - - --- Additional Comments From Rob Leland 2002-10-30 13:25 --- - - In a recent nightly build I fixed a bug where the - web.xml file was not being closed. Could you try - the build from 20021029 to see if the same memory usage - occurs ? - - - --- Additional Comments From Marco Ladermann 2002-10-30 15:10 --- - - Tried build 20021030 and found the same as before. I also saw execption - NoRouteToHostException 'cause some dtd resolver wants to connect to the - internet. Don't know if that affects the phenomenon. - - - --- Additional Comments From Antoni Reus 2002-10-31 18:41 --- - - Same problem with Weblogic 6.1SP3 - - I've followed the same steps - - {{{while true - do - touch wlserver6.1/config/mydomain/applications/struts-blank.war - sleep 15 - ps -p -h -o rss - done }}} - - - I used a build from CVS ( dj oct 31 18:30:08 UTC 2002 ) - - - - - --- Additional Comments From Antoni Reus 2002-11-07 21:39 --- - - I just found this in ActionServlet - - - {{{/** - * Gracefully shut down this controller servlet, releasing any resources - * that were allocated at initialization. - */ - public void destroy() { - - if (log.isDebugEnabled()) { - log.debug(internal.getMessage("finalizing")); - } - - destroyApplications(); - destroyDataSources(); - destroyInternal(); - getServletContext().removeAttribute(Action.ACTION_SERVLET_KEY); - - // FIXME - destroy ApplicationConfig and message resource instances - - } }}} - - Could this be related with the bug? - - In destroyApplications the RequestProcessor.destroy method is invoked on the - RequestProcessor of each ApplicationConfig, but the ApplicationConfig itself - (now ModuleConfigImpl) aren't processed - - - - - --- Additional Comments From David Graham 2002-11-25 04:49 --- - - I'm still not convinced this is a Struts problem. I'm almost certain that circular references are - not a problem because Sun's JVM doesn't use reference counting in its garbage collector. What JVM - are you using? - - As I understand it, to have a Java "memory leak" your app must hold references to - unused objects. We're talking about containers reloading an app so all those references should - be disposed by the container even if they were being held in error. - - Does this behavior happen - when you reload a non Struts app? - - - --- Ad
[Struts Wiki] Update of "StrutsWazzup" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsWazzup The comment on the change is: Not relevant; no actual info on this page. -- - This page links to unresolved issues that need more research or input. + deleted - * StrutsContainerMemoryLeaks -
[Struts Wiki] Update of "FrontPage" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/FrontPage The comment on the change is: Removed link to deleted pages -- === Future Ideas === * StrutsAction1Planning -- Ideas for new versions of Struts 1 * StrutsAction2 -- Discussion on plans/tasks for Struts 2 - * StrutsWhiteboard -- Project proposals and discussion - * StrutsIdeaJar -- Future feature ideas - * StrutsWazzup -- Pages on unresolved issues that need more discussion === Training And consultants === * StrutsConsultants @@ -74, +71 @@ * [http://struts.apache.org/struts-shale/index.html Shale Home Page] * [:Shale:Shale Wiki Pages] - === Historic proposals and discussions on Struts 2 architecture === + === Historic proposals and discussions on future Struts architecture === + * StrutsWhiteboard -- Project proposals and discussion * [:Shale:StrutsShale] -- A proposal for a next generation Struts architecture * StrutsTi -- A proposal and discussion pages for a next generation Struts architecture focusing on simplicity
[Struts Wiki] Update of "MichaelJouravlev" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/MichaelJouravlev -- - == Support web components in SAF1 core == + deleted - To do that: - -* Have a base Action to handle events like a dispatch action -* Update action mapping definition to define dispatch events/handlers in config file and DTD -* Update action mapping definition to define component controller/view in config file -* Create tags for component view -* Create Ajax-related code, tags and Javascript - - Nice to have: - -* Create generic flash scope, not just for messages/errors - - == Other TODO == - -* Move !FormDef to SAF1 core -
[Struts Wiki] Update of "StrutsDeveloperPages" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsDeveloperPages The comment on the change is: Best way to keep word is to not make promises ;-) -- * TedHusted * Rob Leland * EddieBush - * MichaelJouravlev '''Others'''
[Struts Wiki] Update of "Shale" by WendySmoak
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by WendySmoak: http://wiki.apache.org/struts/Shale -- + == Shale has Moved! == - ||[http://struts.apache.org/struts-shale/index.html Shale Home]||[:Shale:Wiki Home]||[:Shale/UserDocs:User Docs]||[:Shale/SiteMap:Index]||[:Shale/WikiGuidelines:Guidelines]||[:../:Go Up]|| - - - == Welcome to the Shale Wiki == - This is the 'home' for the '''Shale Wiki Pages'''. If you want to add/edit pages on this wiki please take time to read the [:/WikiGuidelines:Shale Wiki Guidelines] first. - '''Shale''' is a next generation web application framework architecture, based on assuming the existence of [http://java.sun.com/javaee/javaserverfaces/ JavaServer Faces] and utilizing its extensibility points (as well as other capabilities of the servlet and portlet APIs) to add value and improve ease of use for application developers. It has been '''accepted''' as a formal '''Struts subproject''' so that it can develop community and functionality here. + '''Apache Shale home page:''' http://shale.apache.org - === Official Websites === + || If you were redirected to this page from... || ...then click here: || + || !ShaleRemoting || http://wiki.apache.org/shale/ShaleRemoting || + These pages are slowly being migrated to the Shale wiki: http://wiki.apache.org/shale - * [http://struts.apache.org/index.html Struts Project Home Page] - * [http://struts.apache.org/struts-shale/index.html Shale Home Page] - * [http://java.sun.com/javaee/javaserverfaces/ JavaServer Faces] === Information for Users === * [http://people.apache.org/~craigmcc/struts-shale-README.html Proposal Details]
[Struts Wiki] Update of "ShaleRemoting" by WendySmoak
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by WendySmoak: http://wiki.apache.org/struts/ShaleRemoting -- - #refresh 0 http://wiki.apache.org/shale/ShaleRemoting + #redirect Shale - This page has moved to: http://wiki.apache.org/shale/ShaleRemoting -
svn commit: r422956 - in /struts/struts2/trunk: apps/showcase/ apps/showcase/src/main/resources/ apps/showcase/src/main/webapp/WEB-INF/ core/src/main/java/org/apache/struts2/ core/src/main/java/org/ap
Author: mrdon Date: Mon Jul 17 21:15:02 2006 New Revision: 422956 URL: http://svn.apache.org/viewvc?rev=422956&view=rev Log: Removed action!method syntax by default, however, it can be enabled by specifying the "struts.compatibilityMode" property to true. WW-1353 Modified: struts/struts2/trunk/apps/showcase/quickstart.xml struts/struts2/trunk/apps/showcase/src/main/resources/struts-person.xml struts/struts2/trunk/apps/showcase/src/main/resources/struts-token.xml struts/struts2/trunk/apps/showcase/src/main/webapp/WEB-INF/web.xml struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Component.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Form.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DefautActionMapperTest.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-10.txt struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-9.txt Modified: struts/struts2/trunk/apps/showcase/quickstart.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/quickstart.xml?rev=422956&r1=422955&r2=422956&view=diff == --- struts/struts2/trunk/apps/showcase/quickstart.xml (original) +++ struts/struts2/trunk/apps/showcase/quickstart.xml Mon Jul 17 21:15:02 2006 @@ -12,7 +12,7 @@ users who don't have a single directory in their project that contains all the libraries they need. --> - ../../../xwork/xwork.iml,../../core/struts-core.iml,struts-showcase.iml + ../../../../xwork/xwork.iml,../../core/struts2-core.iml,struts2-showcase.iml /showcase Modified: struts/struts2/trunk/apps/showcase/src/main/resources/struts-person.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/src/main/resources/struts-person.xml?rev=422956&r1=422955&r2=422956&view=diff == --- struts/struts2/trunk/apps/showcase/src/main/resources/struts-person.xml (original) +++ struts/struts2/trunk/apps/showcase/src/main/resources/struts-person.xml Mon Jul 17 21:15:02 2006 @@ -13,7 +13,7 @@ listPeople.ftl - + listPeople.action newPerson.ftl Modified: struts/struts2/trunk/apps/showcase/src/main/resources/struts-token.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/src/main/resources/struts-token.xml?rev=422956&r1=422955&r2=422956&view=diff == --- struts/struts2/trunk/apps/showcase/src/main/resources/struts-token.xml (original) +++ struts/struts2/trunk/apps/showcase/src/main/resources/struts-token.xml Mon Jul 17 21:15:02 2006 @@ -6,7 +6,7 @@ - + example1.jsp @@ -20,7 +20,7 @@ - + example2.jsp @@ -34,7 +34,7 @@ - + example3.jsp @@ -47,7 +47,7 @@ - + example4.ftl Modified: struts/struts2/trunk/apps/showcase/src/main/webapp/WEB-INF/web.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/src/main/webapp/WEB-INF/web.xml?rev=422956&r1=422955&r2=422956&view=diff == --- struts/struts2/trunk/apps/showcase/src/main/webapp/WEB-INF/web.xml (original) +++ struts/struts2/trunk/apps/showcase/src/main/webapp/WEB-INF/web.xml Mon Jul 17 21:15:02 2006 @@ -6,12 +6,12 @@ -action2-cleanup +struts-cleanup org.apache.struts2.dispatcher.ActionContextCleanUp -action2 +struts org.apache.struts2.dispatcher.FilterDispatcher @@ -23,7 +23,7 @@ -action2-cleanup +struts-cleanup /* @@ -33,7 +33,7 @@ -action2 +struts /* @@ -88,7 +88,7 @@ Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java
[Struts Wiki] Update of "FrontPage" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/FrontPage The comment on the change is: Emphasized the role of StrutsDocComments section. -- * StrutsLibraries -- Third-party libraries for Struts * StrutsExtensions -- Extensions for Struts + === Annotated documentation === + * StrutsDocComments -- Comments for the Struts Documentation, examples, how-tos, diagrams, code samples, proposals and best practices; a knowledge base defined around Struts User's Guide. Contribute your own notes to any part of documentation, but please do not ask question here, use mailing list for questions. + - === Struts documentation comments, Articles, Tutorials, FAQ's and Tips === + === Struts Articles, Tutorials, FAQ's and Tips === - * StrutsDocComments -- Comments for the Struts Documentation. Examples, how-tos, diagrams, code samples, proposals and best practices can be found here! * StrutsNewFaqs -- Index of Struts Frequently Asked Question pages * StrutsArticles * StrutsTutorials
[Struts Wiki] Update of "NewWindowFromAction" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/NewWindowFromAction New page: How to display the response it a different window (a.k.a. How to change form target in action?) By Frank Zammetti, extracted from StrutsSolutions page. Simply put, there is no way to do this. Opening a new window is a strictly client-side activity. You have to "fake it". There's two ways to do it... First, you could simply target your HTML form using the target="_blank" attribute. This will result in whatever response the server sends back appearing in a new window. The down-side to this is you have to know before-hand to do this. If you want a variable solution, you have to get into scripting... You can set the target attribute's value via client-side scripting as appropiate before submitting the form. Second, you could have a check in all JSP's that looks for some flag in the request object. When present, the JSP inserts an onLoad Javascript event handler that opens the new window and redirects to the URL where the content can be found. Another possibility if you are using frames is to target all form submissions to a hidden frame. Include in all pages some Javascript that performs some checks and handles things accordingly... I use this in one system I wrote... The checks I'm speaking of are based on some flag value in the request object (just insert the value into a page-level Javascript variable)... The flag may direct the page to copy itself to the main display frame, or to a new window. The former is a very nice way to have a "Please Wait" screen while the server is processing. The later is the same basic idea, but in a new window. This also allows you to do some nice error handling things, such as simply hiding the Please Wait layer in the main frame to expose the page as it existed before the form was submitted. Nice way to debuild a page without incurring any server time. But now I'm getting off on a tangent :) The bottom-line here is this: There is no way to direct the browser to open the response in a new window from an Action. You either have to indicate you want this behavior when the form is submitted, or make it happen with scripting once the response is back at the browser. At least, this is true within the confines of plain old HTML... You could always pull an applet out and do something like this!
[Struts Wiki] Update of "StrutsCatalog" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsCatalog -- * StrutsDesignPatterns * StrutsJumpToAnchor * StrutsMultipleActionForms -- Discussion on how to support multiple ActionForms for a single action mapping + * NewWindowFromAction -- How to display the response it a different window (or How to change form target in action?) * StrutsPleaseWait * ScriptsFromJava * StrutsRememberMeCookie
[Struts Wiki] Update of "StrutsWebService" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsWebService The comment on the change is: Removed Changing Form Target in Action? stuff. -- All these details, and plenty more, as well as full source, are available at the linked address above. I welcome any suggestions anyone has. Although I haven't done much on this in a while (because it met my needs as-is), I would love to continue this work if enough people find it useful. - 5. Simply put, there is no way to do this. Opening a new window is a strictly client-side activity. You have to "fake it". There's two ways to do it... - - First, you could simply target your HTML form using the target="_blank" attribute. This will result in whatever response the server sends back appearing in a new window. The down-side to this is you have to know before-hand to do this. If you want a variable solution, you have to get into scripting... You can set the target attribute's value via client-side scripting as appropiate before submitting the form. - - Second, you could have a check in all JSP's that looks for some flag in the request object. When present, the JSP inserts an onLoad Javascript event handler that opens the new window and redirects to the URL where the content can be found. - - Another possibility if you are using frames is to target all form submissions to a hidden frame. Include in all pages some Javascript that performs some checks and handles things accordingly... I use this in one system I wrote... The checks I'm speaking of are based on some flag value in the request object (just insert the value into a page-level Javascript variable)... The flag may direct the page to copy itself to the main display frame, or to a new window. The former is a very nice way to have a "Please Wait" screen while the server is processing. The later is the same basic idea, but in a new window. This also allows you to do some nice error handling things, such as simply hiding the Please Wait layer in the main frame to expose the page as it existed before the form was submitted. Nice way to debuild a page without incurring any server time. But now I'm getting off on a tangent :) - - The bottom-line here is this: There is no way to direct the browser to open the response in a new window from an Action. You either have to indicate you want this behavior when the form is submitted, or make it happen with scripting once the response is back at the browser. At least, this is true within the confines of plain old HTML... You could always pull an applet out and do something like this! -
svn commit: r422965 - /struts/maven/trunk/pom/pom.xml
Author: wsmoak Date: Mon Jul 17 21:53:05 2006 New Revision: 422965 URL: http://svn.apache.org/viewvc?rev=422965&view=rev Log: Advance to version 4-SNAPSHOT, and update the snapshot repository URL as requested by Henri Yandell. Modified: struts/maven/trunk/pom/pom.xml Modified: struts/maven/trunk/pom/pom.xml URL: http://svn.apache.org/viewvc/struts/maven/trunk/pom/pom.xml?rev=422965&r1=422964&r2=422965&view=diff == --- struts/maven/trunk/pom/pom.xml (original) +++ struts/maven/trunk/pom/pom.xml Mon Jul 17 21:53:05 2006 @@ -26,7 +26,7 @@ org.apache.struts struts-master - 3 + 4-SNAPSHOT pom Apache Struts @@ -331,13 +331,13 @@ apache.snapshots Apache Development Snapshot (and Test Build) Repository - scp://people.apache.org/www/cvs.apache.org/maven-snapshot-repository + scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository false apache.snapshots Apache Development Snapshot Repository - scp://people.apache.org/www/cvs.apache.org/maven-snapshot-repository + scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository apache-site
svn commit: r422972 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/ main/java/org/apache/struts2/dispatcher/ main/java/org/apache/struts2/dispatcher/mapper/ main/java/org/apache/str
Author: mrdon Date: Mon Jul 17 22:28:45 2006 New Revision: 422972 URL: http://svn.apache.org/viewvc?rev=422972&view=rev Log: Changed action mapper to use configuration, allowing action names with slashes, consolidated some tests, few cleanups WW-1383 Removed: struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DefautActionMapperTest.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsTestCase.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapper.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/TagUtils.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/config/ConfigurationTest.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/NullActionMapper.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapperTest.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsTestCase.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsTestCase.java?rev=422972&r1=422971&r2=422972&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsTestCase.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsTestCase.java Mon Jul 17 22:28:45 2006 @@ -18,10 +18,12 @@ package org.apache.struts2; import org.apache.struts2.config.Configuration; +import org.apache.struts2.config.StrutsXMLConfigurationProvider; import org.apache.struts2.dispatcher.Dispatcher; import org.springframework.mock.web.MockServletContext; import com.opensymphony.xwork2.XWorkTestCase; +import com.opensymphony.xwork2.config.ConfigurationManager; import com.opensymphony.xwork2.util.LocalizedTextUtil; /** @@ -40,6 +42,9 @@ LocalizedTextUtil.clearDefaultResourceBundles(); Dispatcher du = new Dispatcher(new MockServletContext()); Dispatcher.setInstance(du); +configurationManager = new ConfigurationManager(); +configurationManager.addConfigurationProvider( +new StrutsXMLConfigurationProvider("struts.xml", false)); du.setConfigurationManager(configurationManager); } Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java?rev=422972&r1=422971&r2=422972&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java Mon Jul 17 22:28:45 2006 @@ -212,7 +212,7 @@ } ActionMapper mapper = ActionMapperFactory.getMapper(); -ActionMapping mapping = mapper.getMapping(request); +ActionMapping mapping = mapper.getMapping(request, du.getConfigurationManager().getConfiguration()); if (mapping == null) { // there is no action in this request, should we look for a static resource? Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java?rev=422972&r1=422971&r2=422972&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java Mon Jul 17 22:28:45 2006 @@ -103,7 +103,8 @@ if (isPathUrl(finalLocation)) { if (!finalLocation.startsWith("/")) { -String namespace = ActionMapperFactory.getMapper().getMapping(request).getNamespace(); +String namespace = ActionMapperFactory.getMapper().getMapping( +request, Dispatcher.getInstance().getConfigurationManager().getConfiguration()).getNamespac