<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.vitarara.org/cms" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Vita Rara: A Life Uncommon - Struts 2</title>
 <link>http://www.vitarara.org/cms/taxonomy/term/57/all</link>
 <description></description>
 <language>en</language>
<item>
 <title>Walking into the Light: A Week With Ruby on Rails</title>
 <link>http://www.vitarara.org/cms/node/146</link>
 <description>&lt;p&gt;This past week or so two developers whom I greatly respect and admire really opened my eyes. It&#039;s been an interesting time since then. On October 23 on the Struts Developer list Craig McClanahan wrote:&lt;/p&gt;
&lt;div class=&quot;vrBlockQuote&quot;&gt;Why the long winded diatribe? Because while I&#039;d *love* to see life made simpler for Java web developers, and a lot of the things happening in Struts2 are going that way -- it won&#039;t be me doing it. I&#039;ve gone over to the dark side :-) and much prefer to develop in Rails -- for the conciseness mentioned above, but also because I don&#039;t ever have to do a &quot;build&quot; or &quot;deploy&quot; step during my development cycle any more.  But you guys and gals need to be reminded that *this* is the kind of thing you are competing against if you expect to attract Rails developers ... or to avoid even more &quot;previously Java web developer&quot; defectors like me :-).&lt;/div&gt;
&lt;p&gt;To which Ted Husted followed up:&lt;/p&gt;
&lt;div class=&quot;vrBlockQuote&quot;&gt;Personally, I&#039;d characterize going over to Rails as walking into the light :)&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/node/146&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/node/146#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/83">Ruby on Rails</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/57">Struts 2</category>
 <pubDate>Sun,  4 Nov 2007 13:45:36 -0500</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">146 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>ApacheCon Training Session: Using Groovy with Struts 2</title>
 <link>http://www.vitarara.org/cms/node/142</link>
 <description>&lt;p&gt;&lt;a href=&quot;http://www.us.apachecon.com/&quot;&gt;&lt;img src=&quot;/cms/files/apachecon_logo.png&quot; class=&quot;vrFloatRight&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On &lt;strong&gt;Tuesday, November 13&lt;/strong&gt; I will be presenting a training session at ApacheCon 2007 in Atlanta, GA, &lt;strong&gt;Using Groovy with Struts 2&lt;/strong&gt;. Learn how to use Groovy with Struts 2. Topics covered will include: Integrating Groovy into the Struts 2 Maven archetype; implementing actions, and service beans in Groovy; using Spring to wire Groovy service beans and action classes; using dynamic Groovy actions that do not require a server restart; writing Data Access Objects in Groovy and using Spring based transaction support with Java Persistence API (JPA).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/node/142&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/node/142#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/75">ApacheCon</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/68">Groovy</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/70">Groovy Works</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/57">Struts 2</category>
 <pubDate>Mon, 15 Oct 2007 10:45:33 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">142 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>Groovy Works 0.1 Release</title>
 <link>http://www.vitarara.org/cms/groovyworks_0.1_release</link>
 <description>&lt;p&gt;Groovy Works has been the benefactor of a lot of development this past week. With upgrades for better class caching, better utilization of the GroovyClassLoader, and integration with Groovy-1.1-beta-3-SNAPSHOT and Spring 2.&lt;/p&gt;
&lt;h2&gt;Google Code Project and SVN Access&lt;/h2&gt;
&lt;p&gt;I have moved &lt;a href=&quot;http://code.google.com/p/groovyworks/&quot;&gt;Groovy Works to Google Code&lt;/a&gt;. To get the latest release please see the download section on Google.&lt;/p&gt;
&lt;h2&gt;Quick Start Directions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Download the &lt;a href=&quot;http://groovyworks.googlecode.com/files/groovyworks-0.1.tar.gz&quot;&gt;current release&lt;/a&gt; from Google Code.&lt;/li&gt;
&lt;li&gt;Unzip it in a directory: tar xfzv groovyworks-0.1.tar_.gz&lt;/li&gt;
&lt;li&gt;Change directory to the groovyworks-core directory: cd groovyworks-core&lt;/li&gt;
&lt;li&gt;Install the Groovy Works artifact with Maven: mvn install&lt;/li&gt;
&lt;li&gt;Change directory to the sample application: cd ../example-app&lt;/li&gt;
&lt;li&gt;Run the application with the Jetty plugin: mvn jetty:run&lt;/li&gt;
&lt;li&gt;Point your browser at http://localhost:8080/groovyworks/&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To use the plugin in your Struts projects you&#039;ll need to remove the standard Struts Spring plugin. Groovy Works provides all of the functionality of the existing Spring plugin.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/groovyworks_0.1_release&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/groovyworks_0.1_release#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/68">Groovy</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/70">Groovy Works</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/11">Spring</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/57">Struts 2</category>
 <pubDate>Sat, 28 Jul 2007 19:02:17 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">138 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>The More I Use Struts 2 the More I Like It</title>
 <link>http://www.vitarara.org/cms/node/133</link>
 <description>&lt;p&gt;It&#039;s a quiet Saturday and I&#039;m working. Yea, I know some people would scoff at that, but lately my office and business life during the week are so hectic I can&#039;t get into that &quot;place&quot; where development just flows.&lt;/p&gt;
&lt;p&gt;Well, today I&#039;m the only one in the office and I&#039;m getting development done. I&#039;m tackling a very tricky screen in Quadran, and Struts 2 is making it a joy. The more I use Struts 2 I realize that a lot of development and thought has gone into solving real web developer needs. When I think of some new feature I&#039;d like in Struts 2 I frequently find that it&#039;s already there. &lt;/p&gt;
&lt;p&gt;I&#039;ve started using the &quot;method&quot; property on submit buttons. I know I&#039;m late to the party. This is just so neat. I used to use hidden properties and switches to get to the right logic. Now, just set method on the &amp;lt;s:submit&amp;gt; tag, and voila! I&#039;m in the right place in my action.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/node/133&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/node/133#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/57">Struts 2</category>
 <pubDate>Sat, 23 Jun 2007 14:40:47 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">133 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>ApacheCon US 2007: Using Groovy with Struts 2</title>
 <link>http://www.vitarara.org/cms/apachecon_us_2007_using_groovy_with_struts_2</link>
 <description>&lt;p&gt;I received an email from ApacheCon today. They have accepted my Using Groovy with Struts 2 training session.&lt;/p&gt;
&lt;p class=&quot;vrBlockQuote&quot;&gt;
Using Groovy with Struts 2: A hands on half day training session. Learn how to use Groovy with Struts 2. Topics covered will include: Integrating Groovy into the Struts 2 Maven archetype; implementing actions, and service beans in Groovy; using Spring to wire Groovy service beans and action classes; using dynamic Groovy actions that do not require a server restart; writing Data Access Objects in Groovy and using Spring based transaction support with Java Persistence API (JPA).
&lt;/p&gt;
&lt;p&gt;I don&#039;t have scheduling information yet, but I believe it will either be on November 12 or 13. Stay tuned for more information.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/apachecon_us_2007_using_groovy_with_struts_2&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/apachecon_us_2007_using_groovy_with_struts_2#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/75">ApacheCon</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/68">Groovy</category>
 <category domain="http://www.vitarara.org/cms/java">Java</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/7">Programming</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/57">Struts 2</category>
 <pubDate>Tue, 22 May 2007 17:11:35 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">124 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>What would you want in a Struts 2 cookbook?</title>
 <link>http://www.vitarara.org/cms/node/122</link>
 <description>&lt;p&gt;I&#039;m seriously considering writing a dead tree Struts 2 cookbook. What types of recipes would you like to see? Beyond what is already in my cookbook&lt;/a&gt; I&#039;ve been thinking of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Integration with other tools:
&lt;ul&gt;
&lt;li&gt;Spring &amp;amp; Spring MVC&lt;/li&gt;
&lt;li&gt;Hibernate, iBatis, JPA&lt;/li&gt;
&lt;li&gt;JSF (integration and migration)&lt;/li&gt;
&lt;li&gt;Guice&lt;/li&gt;
&lt;li&gt;SiteMesh&lt;/li&gt;
&lt;li&gt;Others?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Architecture
&lt;ul&gt;
&lt;li&gt;Using &quot;modules&quot; to break up a large project&lt;/li&gt;
&lt;li&gt;Using layers&lt;/li&gt;
&lt;li&gt;Using Spring as architectural glue&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/node/122&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/node/122#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/57">Struts 2</category>
 <pubDate>Fri, 11 May 2007 10:59:26 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">122 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>Creating a Login Interceptor in Struts 2</title>
 <link>http://www.vitarara.org/cms/struts_2_cookbook/creating_a_login_interceptor</link>
 <description>&lt;p&gt;Controlling access to web resources with a a login process is a common use-case. Implementing this using an interceptor in Struts 2 is very straight forward. &lt;/p&gt;
&lt;p&gt;The parts of the solution:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An interceptor class,&lt;/li&gt;
&lt;li&gt;An interceptor definition in our struts.xml file,&lt;/li&gt;
&lt;li&gt;An interceptor stack that uses our interceptor in our struts.xml file,&lt;/li&gt;
&lt;li&gt;A global result in our struts.xml file,&lt;/li&gt;
&lt;li&gt;A JSP page to accept the username and password,&lt;/li&gt;
&lt;li&gt;A service bean to process our user&#039;s login attempt,&lt;/li&gt;
&lt;li&gt;A way to wire our service bean to our interceptor.&lt;/li&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/struts_2_cookbook/creating_a_login_interceptor&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/struts_2_cookbook/creating_a_login_interceptor#comment</comments>
 <category domain="http://www.vitarara.org/cms/java">Java</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/7">Programming</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/57">Struts 2</category>
 <enclosure url="http://www.vitarara.org/cms/files/LoginInterceptor.zip" length="3388" type="application/zip" />
 <pubDate>Wed, 18 Apr 2007 15:29:51 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">121 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>ApacheCon 2007 US Submissions</title>
 <link>http://www.vitarara.org/cms/node/120</link>
 <description>&lt;p&gt;I&#039;ve submitted three proposals for talks at &lt;a href=&quot;http://apachecon.com/html/login.html&quot;&gt;ApacheCon 2007 US&lt;/a&gt;, login to see the proposed sessions and give feedback on them. &lt;/p&gt;
&lt;p&gt;I&#039;ve never submitted a proposal to do a presentation at a technical conference before. So, this is a first. I&#039;ve done a lot of training and mentoring, but never worked for an employer who saw sharing the knowledge as something of value they wanted their employees doing. (It&#039;s good to be self-employed now!)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/node/120&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/node/120#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/75">ApacheCon</category>
 <category domain="http://www.vitarara.org/cms/java">Java</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/7">Programming</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/57">Struts 2</category>
 <pubDate>Wed, 18 Apr 2007 12:59:02 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">120 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>Post and Redirect in Struts 2</title>
 <link>http://www.vitarara.org/cms/struts_2_cookbook/post_and_redirect</link>
 <description>&lt;p&gt;Redirecting a user of a web application after submitting an HTTP POST is a common pattern. A common use case is to redirect to a display page after a user has created something, such as a purchase order or sales order.&lt;/p&gt;
&lt;p&gt;This post and redirect pattern is supported by Struts 2. The means of doing this wasn&#039;t obvious to me, but some reading and searching turned up the answer. There are some examples around for doing a redirect using static parameters, but that doesn&#039;t help when you want to redirect someone say to display the order they just placed on your website.&lt;/p&gt;
&lt;p&gt;Redirects in Struts 2 can use static or dynamic parameters. Here&#039;s a simple static redirect:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vitarara.org/cms/struts_2_cookbook/post_and_redirect&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.vitarara.org/cms/struts_2_cookbook/post_and_redirect#comment</comments>
 <category domain="http://www.vitarara.org/cms/java">Java</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/7">Programming</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/57">Struts 2</category>
 <pubDate>Tue, 17 Apr 2007 16:13:19 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">119 at http://www.vitarara.org/cms</guid>
</item>
<item>
 <title>The Definitive Guide to Grails</title>
 <link>http://www.vitarara.org/cms/node/116</link>
 <description>&lt;p&gt;I picked up a copy of The Definitive Guide to Grails this week. I&#039;m most of the way through it, and I&#039;m impressed. The Grails team has definitely done a lot of work. As a result I&#039;ve started to dig into the code, and I&#039;m getting a lot of ideas for Groovy Works.&lt;/p&gt;
&lt;p&gt;Overall I highly recommend getting a copy of the book, whether you use Grails or not. It is well worth a look. &lt;/p&gt;
&lt;p&gt;I&#039;ll post more thoughts when I finish the book.&lt;/p&gt;
</description>
 <comments>http://www.vitarara.org/cms/node/116#comment</comments>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/74">Grails</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/68">Groovy</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/70">Groovy Works</category>
 <category domain="http://www.vitarara.org/cms/taxonomy/term/7">Programming</category>
 <pubDate>Sat, 31 Mar 2007 18:26:28 -0400</pubDate>
 <dc:creator>Mark</dc:creator>
 <guid isPermaLink="false">116 at http://www.vitarara.org/cms</guid>
</item>
</channel>
</rss>

