<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Why I prefer Stripes over Wicket</title>
	<atom:link href="http://www.assertinteresting.com/2009/03/why-i-prefer-stripes-over-wicket/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.assertinteresting.com/2009/03/why-i-prefer-stripes-over-wicket/</link>
	<description>Thoughts on software development</description>
	<lastBuildDate>Wed, 13 Jan 2010 23:27:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Davide Molin</title>
		<link>http://www.assertinteresting.com/2009/03/why-i-prefer-stripes-over-wicket/comment-page-1/#comment-6107</link>
		<dc:creator>Davide Molin</dc:creator>
		<pubDate>Wed, 13 Jan 2010 23:27:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.assertinteresting.com/?p=7#comment-6107</guid>
		<description>Wicket is really a great framework; Sure, it can be rough at start; All that it takes is some time to get back to old OO school principles and start thinking again with abstraction, composition and patterns.
Oh man, I&#039;ve been spending years scripting code in JSP and now I&#039;m finally getting back to real programming! Wicket is wonderful when it comes to creating reusable and extensible components; At my actual job I&#039;m just creating a component stack on top of Wicket and I&#039;ve no words in telling how easy is for the other team members to use the components I&#039;m writing and coding complex applications with minimal effort! They have just to create their Page class extending &quot;SecuredContentPage&quot; and voila&#039;! they get a complete Web Page, full with css stylesheets (overloadable and with branding capabilities, of course), a menubar (horizontal/vertical), footer, content area with title, maximizer button etc etc.. All Corporate Web application pages shares a common theme, behavior and presentation; And If I write a beautiful pageable data table I can turn it into a reusable component and save days of coding to my happy fellows. I&#039;ve no words in telling how happy I&#039;m with using this beautiful framework!</description>
		<content:encoded><![CDATA[<p>Wicket is really a great framework; Sure, it can be rough at start; All that it takes is some time to get back to old OO school principles and start thinking again with abstraction, composition and patterns.<br />
Oh man, I&#8217;ve been spending years scripting code in JSP and now I&#8217;m finally getting back to real programming! Wicket is wonderful when it comes to creating reusable and extensible components; At my actual job I&#8217;m just creating a component stack on top of Wicket and I&#8217;ve no words in telling how easy is for the other team members to use the components I&#8217;m writing and coding complex applications with minimal effort! They have just to create their Page class extending &#8220;SecuredContentPage&#8221; and voila&#8217;! they get a complete Web Page, full with css stylesheets (overloadable and with branding capabilities, of course), a menubar (horizontal/vertical), footer, content area with title, maximizer button etc etc.. All Corporate Web application pages shares a common theme, behavior and presentation; And If I write a beautiful pageable data table I can turn it into a reusable component and save days of coding to my happy fellows. I&#8217;ve no words in telling how happy I&#8217;m with using this beautiful framework!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lester</title>
		<link>http://www.assertinteresting.com/2009/03/why-i-prefer-stripes-over-wicket/comment-page-1/#comment-6054</link>
		<dc:creator>Lester</dc:creator>
		<pubDate>Fri, 08 Jan 2010 12:09:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.assertinteresting.com/?p=7#comment-6054</guid>
		<description>The thing about this article is that it seems to be misnamed.
The title should be \Try to answer Igor&#039;s point instead of Stripes vs Wicket\.

There is no clear explanation of why a particular approach is better in Stripes, just statements that point out they are different.

And the side by side code comparison. What does that achieve? 

My own experience with Wicket seems to be entirely different. Mailing list was helpful. The hints that Igor and other drops are extremely helpful. Yes, they seldom spell out solution for script kiddies (I wonder how many millions of those there are) who typically rely on cut and paste examples to achieve anything, but if you recall your OO (which sadly had been allowed to degrade with scripting) understanding what they mean usually just requires you to think about the component and in worst case scenario, navigate to the JAVA code of that component. 

People who complain about Wicket not being maintainable probably have NEVER maintained any medium to large scale systems. Maintainability is NOT about how quickly you can change your code. It&#039;s more about how easily your colleague can come back months/years later and understand your code for him/her execute a Change request. With a pure JAVA implementation. All I need is another Java programmer, ok maybe ones untainted by model-2; they did take the Swing course in their Sun certification, I don&#039;t even need Wicket programmers. With markup heavy frameworks, I don&#039;t have that luxury. 3 years down the road, what&#039;s Stripes you say? Oh, forget it and just rewrite everything with my brand new framework, we have lots of cut-and-paste ready examples for your monkeys, oops, programmers.... With Wicket, the only situation that&#039;ll occur is when everyone forgets Java.</description>
		<content:encoded><![CDATA[<p>The thing about this article is that it seems to be misnamed.<br />
The title should be \Try to answer Igor&#8217;s point instead of Stripes vs Wicket\.</p>
<p>There is no clear explanation of why a particular approach is better in Stripes, just statements that point out they are different.</p>
<p>And the side by side code comparison. What does that achieve? </p>
<p>My own experience with Wicket seems to be entirely different. Mailing list was helpful. The hints that Igor and other drops are extremely helpful. Yes, they seldom spell out solution for script kiddies (I wonder how many millions of those there are) who typically rely on cut and paste examples to achieve anything, but if you recall your OO (which sadly had been allowed to degrade with scripting) understanding what they mean usually just requires you to think about the component and in worst case scenario, navigate to the JAVA code of that component. </p>
<p>People who complain about Wicket not being maintainable probably have NEVER maintained any medium to large scale systems. Maintainability is NOT about how quickly you can change your code. It&#8217;s more about how easily your colleague can come back months/years later and understand your code for him/her execute a Change request. With a pure JAVA implementation. All I need is another Java programmer, ok maybe ones untainted by model-2; they did take the Swing course in their Sun certification, I don&#8217;t even need Wicket programmers. With markup heavy frameworks, I don&#8217;t have that luxury. 3 years down the road, what&#8217;s Stripes you say? Oh, forget it and just rewrite everything with my brand new framework, we have lots of cut-and-paste ready examples for your monkeys, oops, programmers&#8230;. With Wicket, the only situation that&#8217;ll occur is when everyone forgets Java.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim</title>
		<link>http://www.assertinteresting.com/2009/03/why-i-prefer-stripes-over-wicket/comment-page-1/#comment-5448</link>
		<dc:creator>Jim</dc:creator>
		<pubDate>Wed, 23 Sep 2009 19:59:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.assertinteresting.com/?p=7#comment-5448</guid>
		<description>Great article.  I&#039;ve been using wicket for a month or two on a project and agree with the author&#039;s points.  A lot of simple things are very difficult to do in wicket and extremely unintuitive.  You can pick through the mailing list and they&#039;ll say, just do this weird thing or that weird thing - how would we even know to do that?  I think you need to understand the internal workings of wicket in order to use it.  It&#039;s definitely not well documented.</description>
		<content:encoded><![CDATA[<p>Great article.  I&#8217;ve been using wicket for a month or two on a project and agree with the author&#8217;s points.  A lot of simple things are very difficult to do in wicket and extremely unintuitive.  You can pick through the mailing list and they&#8217;ll say, just do this weird thing or that weird thing &#8211; how would we even know to do that?  I think you need to understand the internal workings of wicket in order to use it.  It&#8217;s definitely not well documented.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rashid</title>
		<link>http://www.assertinteresting.com/2009/03/why-i-prefer-stripes-over-wicket/comment-page-1/#comment-4864</link>
		<dc:creator>Rashid</dc:creator>
		<pubDate>Thu, 06 Aug 2009 03:12:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.assertinteresting.com/?p=7#comment-4864</guid>
		<description>Can Wicket fan tell me if we have to choose component base model over model 2, isn&#039;t zk (http://www.zkoss.org/) is a much better framework than Wicket. It has all the features of Wicket plus out of the box excellent Ajax support. I used both Wicket and ZK, and honestly after using ZK, I am not sure why some one wants to go back to Wicket.</description>
		<content:encoded><![CDATA[<p>Can Wicket fan tell me if we have to choose component base model over model 2, isn&#8217;t zk (<a href="http://www.zkoss.org/" rel="nofollow">http://www.zkoss.org/</a>) is a much better framework than Wicket. It has all the features of Wicket plus out of the box excellent Ajax support. I used both Wicket and ZK, and honestly after using ZK, I am not sure why some one wants to go back to Wicket.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Francisco</title>
		<link>http://www.assertinteresting.com/2009/03/why-i-prefer-stripes-over-wicket/comment-page-1/#comment-4721</link>
		<dc:creator>Francisco</dc:creator>
		<pubDate>Fri, 24 Jul 2009 19:34:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.assertinteresting.com/?p=7#comment-4721</guid>
		<description>Seriously, read this four-year-old (excellent) post: http://technically.us/code/x/java-vs-ruby-on-rails-deathmatch/

Especially the last sentence.</description>
		<content:encoded><![CDATA[<p>Seriously, read this four-year-old (excellent) post: <a href="http://technically.us/code/x/java-vs-ruby-on-rails-deathmatch/" rel="nofollow">http://technically.us/code/x/java-vs-ruby-on-rails-deathmatch/</a></p>
<p>Especially the last sentence.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eswar</title>
		<link>http://www.assertinteresting.com/2009/03/why-i-prefer-stripes-over-wicket/comment-page-1/#comment-4670</link>
		<dc:creator>Eswar</dc:creator>
		<pubDate>Tue, 14 Jul 2009 19:28:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.assertinteresting.com/?p=7#comment-4670</guid>
		<description>Great article, I wonder have you ever tried spring.</description>
		<content:encoded><![CDATA[<p>Great article, I wonder have you ever tried spring.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bruno Borges</title>
		<link>http://www.assertinteresting.com/2009/03/why-i-prefer-stripes-over-wicket/comment-page-1/#comment-4668</link>
		<dc:creator>Bruno Borges</dc:creator>
		<pubDate>Thu, 09 Jul 2009 03:21:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.assertinteresting.com/?p=7#comment-4668</guid>
		<description>Comparing Stripes vs Wicket is like comparing apples vs bananas. 

One is an action-based framework while the second is component-based.

You like Stripes because of #1 you don&#039;t wan&#039;t to move from action-based flow to component-based hierarchy, or #2 you can&#039;t do #1. :-)

Cheers,
Bruno</description>
		<content:encoded><![CDATA[<p>Comparing Stripes vs Wicket is like comparing apples vs bananas. </p>
<p>One is an action-based framework while the second is component-based.</p>
<p>You like Stripes because of #1 you don&#8217;t wan&#8217;t to move from action-based flow to component-based hierarchy, or #2 you can&#8217;t do #1. <img src='http://www.assertinteresting.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Cheers,<br />
Bruno</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tetsuo</title>
		<link>http://www.assertinteresting.com/2009/03/why-i-prefer-stripes-over-wicket/comment-page-1/#comment-4667</link>
		<dc:creator>Tetsuo</dc:creator>
		<pubDate>Thu, 09 Jul 2009 02:23:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.assertinteresting.com/?p=7#comment-4667</guid>
		<description>Oh, sorry, I&#039;ve forgot to strip some comments from the Stripes example. Wickets&#039; is &#039;only&#039; 8 lines and 370 bytes shorter. :)</description>
		<content:encoded><![CDATA[<p>Oh, sorry, I&#8217;ve forgot to strip some comments from the Stripes example. Wickets&#8217; is &#8216;only&#8217; 8 lines and 370 bytes shorter. <img src='http://www.assertinteresting.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tetsuo</title>
		<link>http://www.assertinteresting.com/2009/03/why-i-prefer-stripes-over-wicket/comment-page-1/#comment-4666</link>
		<dc:creator>Tetsuo</dc:creator>
		<pubDate>Thu, 09 Jul 2009 02:17:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.assertinteresting.com/?p=7#comment-4666</guid>
		<description>(trying again, escaping point brackets to keep the markup)

In that example you used for comparison, what was your point? Number of lines?

If that was the case, if you strip the comments (things like, &#039;/** Constructor */&#039; and &#039;/** returns the message */&#039;), blank likes, and use the same code conventions (inline curly brackets), the code becomes 9 lines (and 581 bytes) shorter than Stripes&#039;!

Wicket:
=========================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; &gt;
&lt;head&gt;
    &lt;title&gt;Wicket Examples - echo&lt;/title&gt;
    &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;style.css&quot;/&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;span wicket:id=&quot;mainNavigation&quot;/&gt;
    &lt;form wicket:id=&quot;form&quot;&gt;
        &lt;input type=&quot;text&quot; wicket:id=&quot;msgInput&quot; value=&quot;&quot; size=&quot;50&quot; /&gt;
        &lt;input type=&quot;submit&quot; value=&quot;set message&quot; /&gt;
    &lt;/form&gt;
    &lt;span wicket:id=&quot;msg&quot; id=&quot;msg&quot;&gt;Message goes here&lt;/span&gt;
&lt;/body&gt;
&lt;/html&gt;
package org.apache.wicket.examples.echo;
import org.apache.wicket.examples.WicketExamplePage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.PropertyModel;
public class Echo extends WicketExamplePage {
    private String message = &quot;[type your message to the world here]&quot;;
     public Echo() {
        PropertyModel messageModel = new PropertyModel(this, &quot;message&quot;);
         add(new Label(&quot;msg&quot;, messageModel));
         Form form = new Form(&quot;form&quot;);
        form.add(new TextField(&quot;msgInput&quot;, messageModel));
        add(form);
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
}
=========================================



Stripes:
=========================================
&lt;%@ page contentType=&quot;text/html;charset=UTF-8&quot; language=&quot;java&quot; %&gt;
&lt;%@ taglib prefix=&quot;stripes&quot; uri=&quot;http://stripes.sourceforge.net/stripes.tld&quot; %&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
&lt;html&gt;
  &lt;head&gt;&lt;title&gt;Echo&lt;/title&gt;&lt;/head&gt;
  &lt;body&gt;
    &lt;stripes:form beanclass=&quot;com.example.EchoActionBean&quot;&gt;
        &lt;table&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;stripes:text name=&quot;message&quot;/&gt;&lt;/td&gt;
                &lt;!-- ${actionBean} is the actionBean that took you to this JSP. Always an EchoActionBean in this example --&gt;
                &lt;td&gt;${actionBean.message}&lt;/td&gt;
                &lt;td&gt;&lt;stripes:submit name=&quot;printMessage&quot; value=&quot;Submit&quot;/&gt;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/table&gt;
    &lt;/stripes:form&gt;
  &lt;/body&gt;
&lt;/html&gt;
package com.example;
import net.sourceforge.stripes.action.ActionBean;
import net.sourceforge.stripes.action.ActionBeanContext;
import net.sourceforge.stripes.action.DefaultHandler;
import net.sourceforge.stripes.action.ForwardResolution;
import net.sourceforge.stripes.action.Resolution;
import net.sourceforge.stripes.action.UrlBinding;
@UrlBinding(&quot;/home&quot;)
public class EchoActionBean implements ActionBean {
    private ActionBeanContext actionBeanContext;
    private String message = &quot;[type your message to the world here]&quot;;
    public void setContext(ActionBeanContext actionBeanContext) {
        this.actionBeanContext = actionBeanContext;
    }
    public ActionBeanContext getContext() {
        return actionBeanContext;
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    @DefaultHandler  //Every time you visit &quot;/home&quot;, this method gets called and forwards you to the JSP
    public Resolution printMessage() {
        return new ForwardResolution(&quot;/WEB-INF/jsp/home.jsp&quot;);
    }
}
=========================================</description>
		<content:encoded><![CDATA[<p>(trying again, escaping point brackets to keep the markup)</p>
<p>In that example you used for comparison, what was your point? Number of lines?</p>
<p>If that was the case, if you strip the comments (things like, &#8216;/** Constructor */&#8217; and &#8216;/** returns the message */&#8217;), blank likes, and use the same code conventions (inline curly brackets), the code becomes 9 lines (and 581 bytes) shorter than Stripes&#8217;!</p>
<p>Wicket:<br />
=========================================<br />
&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221; &gt;<br />
&lt;head&gt;<br />
    &lt;title&gt;Wicket Examples &#8211; echo&lt;/title&gt;<br />
    &lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;style.css&#8221;/&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
    &lt;span wicket:id=&#8221;mainNavigation&#8221;/&gt;<br />
    &lt;form wicket:id=&#8221;form&#8221;&gt;<br />
        &lt;input type=&#8221;text&#8221; wicket:id=&#8221;msgInput&#8221; value=&#8221;" size=&#8221;50&#8243; /&gt;<br />
        &lt;input type=&#8221;submit&#8221; value=&#8221;set message&#8221; /&gt;<br />
    &lt;/form&gt;<br />
    &lt;span wicket:id=&#8221;msg&#8221; id=&#8221;msg&#8221;&gt;Message goes here&lt;/span&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
package org.apache.wicket.examples.echo;<br />
import org.apache.wicket.examples.WicketExamplePage;<br />
import org.apache.wicket.markup.html.basic.Label;<br />
import org.apache.wicket.markup.html.form.Form;<br />
import org.apache.wicket.markup.html.form.TextField;<br />
import org.apache.wicket.model.PropertyModel;<br />
public class Echo extends WicketExamplePage {<br />
    private String message = &#8220;[type your message to the world here]&#8220;;<br />
     public Echo() {<br />
        PropertyModel messageModel = new PropertyModel(this, &#8220;message&#8221;);<br />
         add(new Label(&#8220;msg&#8221;, messageModel));<br />
         Form form = new Form(&#8220;form&#8221;);<br />
        form.add(new TextField(&#8220;msgInput&#8221;, messageModel));<br />
        add(form);<br />
    }<br />
    public String getMessage() {<br />
        return message;<br />
    }<br />
    public void setMessage(String message) {<br />
        this.message = message;<br />
    }<br />
}<br />
=========================================</p>
<p>Stripes:<br />
=========================================<br />
&lt;%@ page contentType=&#8221;text/html;charset=UTF-8&#8243; language=&#8221;java&#8221; %&gt;<br />
&lt;%@ taglib prefix=&#8221;stripes&#8221; uri=&#8221;http://stripes.sourceforge.net/stripes.tld&#8221; %&gt;<br />
&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Strict//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#8221;&gt;<br />
&lt;html&gt;<br />
  &lt;head&gt;&lt;title&gt;Echo&lt;/title&gt;&lt;/head&gt;<br />
  &lt;body&gt;<br />
    &lt;stripes:form beanclass=&#8221;com.example.EchoActionBean&#8221;&gt;<br />
        &lt;table&gt;<br />
            &lt;tr&gt;<br />
                &lt;td&gt;&lt;stripes:text name=&#8221;message&#8221;/&gt;&lt;/td&gt;<br />
                &lt;!&#8211; ${actionBean} is the actionBean that took you to this JSP. Always an EchoActionBean in this example &#8211;&gt;<br />
                &lt;td&gt;${actionBean.message}&lt;/td&gt;<br />
                &lt;td&gt;&lt;stripes:submit name=&#8221;printMessage&#8221; value=&#8221;Submit&#8221;/&gt;&lt;/td&gt;<br />
            &lt;/tr&gt;<br />
        &lt;/table&gt;<br />
    &lt;/stripes:form&gt;<br />
  &lt;/body&gt;<br />
&lt;/html&gt;<br />
package com.example;<br />
import net.sourceforge.stripes.action.ActionBean;<br />
import net.sourceforge.stripes.action.ActionBeanContext;<br />
import net.sourceforge.stripes.action.DefaultHandler;<br />
import net.sourceforge.stripes.action.ForwardResolution;<br />
import net.sourceforge.stripes.action.Resolution;<br />
import net.sourceforge.stripes.action.UrlBinding;<br />
@UrlBinding(&#8220;/home&#8221;)<br />
public class EchoActionBean implements ActionBean {<br />
    private ActionBeanContext actionBeanContext;<br />
    private String message = &#8220;[type your message to the world here]&#8220;;<br />
    public void setContext(ActionBeanContext actionBeanContext) {<br />
        this.actionBeanContext = actionBeanContext;<br />
    }<br />
    public ActionBeanContext getContext() {<br />
        return actionBeanContext;<br />
    }<br />
    public String getMessage() {<br />
        return message;<br />
    }<br />
    public void setMessage(String message) {<br />
        this.message = message;<br />
    }<br />
    @DefaultHandler  //Every time you visit &#8220;/home&#8221;, this method gets called and forwards you to the JSP<br />
    public Resolution printMessage() {<br />
        return new ForwardResolution(&#8220;/WEB-INF/jsp/home.jsp&#8221;);<br />
    }<br />
}<br />
=========================================</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tetsuo</title>
		<link>http://www.assertinteresting.com/2009/03/why-i-prefer-stripes-over-wicket/comment-page-1/#comment-4665</link>
		<dc:creator>Tetsuo</dc:creator>
		<pubDate>Thu, 09 Jul 2009 02:15:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.assertinteresting.com/?p=7#comment-4665</guid>
		<description>In that example you used for comparison, what was your point? Number of lines?

If that was the case, if you strip the comments (things like, &#039;/** Constructor */&#039; and &#039;/** returns the message */&#039;), blank likes, and use the same code conventions (inline curly brackets), the code becomes 9 lines (and 581 bytes) shorter than Stripes&#039;!

Wicket:
=========================================



    Wicket Examples - echo
    


    
    
        
        
    
    Message goes here


package org.apache.wicket.examples.echo;
import org.apache.wicket.examples.WicketExamplePage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.PropertyModel;
public class Echo extends WicketExamplePage {
    private String message = &quot;[type your message to the world here]&quot;;
     public Echo() {
        PropertyModel messageModel = new PropertyModel(this, &quot;message&quot;);
         add(new Label(&quot;msg&quot;, messageModel));
         Form form = new Form(&quot;form&quot;);
        form.add(new TextField(&quot;msgInput&quot;, messageModel));
        add(form);
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
}
=========================================



Stripes:
=========================================




  Echo
  
    
        
            
                
                &lt;!-- ${actionBean} is the actionBean that took you to this JSP. Always an EchoActionBean in this example --&gt;
                ${actionBean.message}
                
            
        
    
  

package com.example;
import net.sourceforge.stripes.action.ActionBean;
import net.sourceforge.stripes.action.ActionBeanContext;
import net.sourceforge.stripes.action.DefaultHandler;
import net.sourceforge.stripes.action.ForwardResolution;
import net.sourceforge.stripes.action.Resolution;
import net.sourceforge.stripes.action.UrlBinding;
@UrlBinding(&quot;/home&quot;)
public class EchoActionBean implements ActionBean {
    private ActionBeanContext actionBeanContext;
    private String message = &quot;[type your message to the world here]&quot;;
    public void setContext(ActionBeanContext actionBeanContext) {
        this.actionBeanContext = actionBeanContext;
    }
    public ActionBeanContext getContext() {
        return actionBeanContext;
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    @DefaultHandler  //Every time you visit &quot;/home&quot;, this method gets called and forwards you to the JSP
    public Resolution printMessage() {
        return new ForwardResolution(&quot;/WEB-INF/jsp/home.jsp&quot;);
    }
}
=========================================</description>
		<content:encoded><![CDATA[<p>In that example you used for comparison, what was your point? Number of lines?</p>
<p>If that was the case, if you strip the comments (things like, &#8216;/** Constructor */&#8217; and &#8216;/** returns the message */&#8217;), blank likes, and use the same code conventions (inline curly brackets), the code becomes 9 lines (and 581 bytes) shorter than Stripes&#8217;!</p>
<p>Wicket:<br />
=========================================</p>
<p>    Wicket Examples &#8211; echo</p>
<p>    Message goes here</p>
<p>package org.apache.wicket.examples.echo;<br />
import org.apache.wicket.examples.WicketExamplePage;<br />
import org.apache.wicket.markup.html.basic.Label;<br />
import org.apache.wicket.markup.html.form.Form;<br />
import org.apache.wicket.markup.html.form.TextField;<br />
import org.apache.wicket.model.PropertyModel;<br />
public class Echo extends WicketExamplePage {<br />
    private String message = &#8220;[type your message to the world here]&#8220;;<br />
     public Echo() {<br />
        PropertyModel messageModel = new PropertyModel(this, &#8220;message&#8221;);<br />
         add(new Label(&#8220;msg&#8221;, messageModel));<br />
         Form form = new Form(&#8220;form&#8221;);<br />
        form.add(new TextField(&#8220;msgInput&#8221;, messageModel));<br />
        add(form);<br />
    }<br />
    public String getMessage() {<br />
        return message;<br />
    }<br />
    public void setMessage(String message) {<br />
        this.message = message;<br />
    }<br />
}<br />
=========================================</p>
<p>Stripes:<br />
=========================================</p>
<p>  Echo</p>
<p>                <!-- ${actionBean} is the actionBean that took you to this JSP. Always an EchoActionBean in this example --><br />
                ${actionBean.message}</p>
<p>package com.example;<br />
import net.sourceforge.stripes.action.ActionBean;<br />
import net.sourceforge.stripes.action.ActionBeanContext;<br />
import net.sourceforge.stripes.action.DefaultHandler;<br />
import net.sourceforge.stripes.action.ForwardResolution;<br />
import net.sourceforge.stripes.action.Resolution;<br />
import net.sourceforge.stripes.action.UrlBinding;<br />
@UrlBinding(&#8220;/home&#8221;)<br />
public class EchoActionBean implements ActionBean {<br />
    private ActionBeanContext actionBeanContext;<br />
    private String message = &#8220;[type your message to the world here]&#8220;;<br />
    public void setContext(ActionBeanContext actionBeanContext) {<br />
        this.actionBeanContext = actionBeanContext;<br />
    }<br />
    public ActionBeanContext getContext() {<br />
        return actionBeanContext;<br />
    }<br />
    public String getMessage() {<br />
        return message;<br />
    }<br />
    public void setMessage(String message) {<br />
        this.message = message;<br />
    }<br />
    @DefaultHandler  //Every time you visit &#8220;/home&#8221;, this method gets called and forwards you to the JSP<br />
    public Resolution printMessage() {<br />
        return new ForwardResolution(&#8220;/WEB-INF/jsp/home.jsp&#8221;);<br />
    }<br />
}<br />
=========================================</p>
]]></content:encoded>
	</item>
</channel>
</rss>
