<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://java.dzone.com"  xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dz="http://www.developerzone.com/modules/dz/1.0">
<channel>
 <title>Javalobby - Comments for &quot;Java Web Frameworks Survey&quot;</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey</link>
 <description>Comments for &quot;Java Web Frameworks Survey&quot;</description>
 <language>en</language>
<item>
 <title>Hi Igor,thanks for your</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2738</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;Hi Igor,&lt;/p&gt;&lt;p&gt;thanks for your input.&lt;/p&gt;&lt;p&gt;I didn&#039;t want to compare apple with oranges but click and wicket looks quite close to each other for a newbie (to the web frameworks), sorry for this. So, you think Wicket is &#039;better&#039;? &lt;/p&gt;&lt;p&gt;You mean that I should use NonCachingImage instead of the setHeaders stuff?&lt;/p&gt;&lt;p&gt;The errorText-label I needed for some debugging while I played with the code. &lt;/p&gt;&lt;p&gt;Peter. &lt;/p&gt;</description>
 <pubDate>Tue, 15 Apr 2008 18:58:38 -0400</pubDate>
 <dc:creator>peathal</dc:creator>
 <guid isPermaLink="false">comment 2738 at http://java.dzone.com</guid>
</item>
<item>
 <title>Peter,I didn&#039;t want to</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2739</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;Peter,&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I didn&#039;t want to compare apple with oranges but click and wicket looks
quite close for a newbie to the web frameworks, sorry. &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Well, thats exactly the problem with these kinds of comparisons, to a newbie they might look the same.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;So you think
wicket is better? &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;You are asking a wicket committer if he thinks a framework he sinks a lot of his free time into is better then anything else out there? What do you think the answer is? :) &lt;/p&gt;&lt;p&gt;But, if you ask me to compare wicket to another framework I probably would not be able to come up with anything meaningful either. There are some basic design choices that differentiate all the major frameworks, some of them are: state management, markup handling, pojo model, testability, component hierarchy (static vs dynamic), community, books, etc. You can probably figure these out even if you havent used the framework extensively. Then you figure out which of these choices jive more with what you want in the framework for a particular app - and there is your choice.&lt;/p&gt;&lt;p&gt;Another good thing is to ask the community behind the framework for help. Give them a list of assumptions you have come up with and ask for validation. &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;You mean that I should use NonCachingImage instead of the setHeaders stuff?&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Yep, there is no reason to reinvent the wheel by setting the headers yourself. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
 <pubDate>Tue, 15 Apr 2008 18:49:30 -0400</pubDate>
 <dc:creator>ivaynberg</dc:creator>
 <guid isPermaLink="false">comment 2739 at http://java.dzone.com</guid>
</item>
<item>
 <title>Some comments on the</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2736</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;Some comments on the attached sources:&lt;/p&gt;WicketApplication can be replaced with just:&lt;br /&gt;&lt;pre class=&quot;java&quot;&gt;public class WicketApplication extends WebApplication {&lt;br /&gt;&lt;br /&gt;	public WicketApplication() {&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public Class getHomePage() {&lt;br /&gt;		return HomePage.class;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;HomePage can be rewritten in a much more concise form:&lt;/p&gt;&lt;pre class=&quot;java&quot;&gt;public class HomePage extends WebPage {&lt;br /&gt;&lt;br /&gt;	private static final long serialVersionUID = 1L;&lt;br /&gt;&lt;br /&gt;    /** graph expression */&lt;br /&gt;    private String expression=&amp;quot;plot sin(x)&amp;quot;;&lt;br /&gt;&lt;br /&gt;	/**&lt;br /&gt;	 * Constructor that is invoked when page is invoked without a session.&lt;br /&gt;	 * &lt;br /&gt;	 * @param parameters&lt;br /&gt;	 *            Page parameters&lt;br /&gt;	 */&lt;br /&gt;	public HomePage(final PageParameters parameters) {&lt;br /&gt;    Form form=new Form(&amp;quot;messageInputForm&amp;quot;);&lt;br /&gt;    add(new TextArea(&amp;quot;statements&amp;quot;, new PropertyModel(this, &amp;quot;expression&amp;quot;));&lt;br /&gt;		add(new Label(&amp;quot;errorText&amp;quot;)); // what is this for?&lt;br /&gt;		add(new WGImage(&amp;quot;image&amp;quot;));&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	private final class WGImage extends NonCachingImage {&lt;br /&gt;&lt;br /&gt;		private static final long serialVersionUID = -2972050319844348290L;&lt;br /&gt;&lt;br /&gt;		public WGImage(String id) {&lt;br /&gt;			super(id);&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		@Override&lt;br /&gt;		protected Resource getImageResource() {&lt;br /&gt;			return new DynamicImageResource() {&lt;br /&gt;&lt;br /&gt;				private static final long serialVersionUID = -4215541582455792421L;&lt;br /&gt;&lt;br /&gt;				@Override&lt;br /&gt;				protected byte[] getImageData() {&lt;br /&gt;&lt;br /&gt;					try {&lt;br /&gt;						return toImageData(GnuplotHelper.getDefault().getImage(expression));&lt;br /&gt;					} catch (IOException e) {&lt;br /&gt;						e.printStackTrace();&lt;br /&gt;						return null;&lt;br /&gt;					}&lt;br /&gt;				}&lt;br /&gt;&lt;br /&gt;		&lt;br /&gt;			};&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
 <pubDate>Tue, 15 Apr 2008 16:33:25 -0400</pubDate>
 <dc:creator>ivaynberg</dc:creator>
 <guid isPermaLink="false">comment 2736 at http://java.dzone.com</guid>
</item>
<item>
 <title>A few corrections about</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2734</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;A few corrections about Wicket&lt;/p&gt;&lt;p&gt;1) Comparing Wicket to Click is like comparing apples to oranges. While there are some minor similarities upon first glance, Wicket and Click have completely different focuses. Wicket focuses on stateful components, while Click focuses on stateless ones. In Click you can only have one stateful page instance per its class, in Wicket you can have multiple instances and multiple versions per instance to make the back button work properly. (This is what Click did last time I looked at it, it may have since changed). Advantages of stateful components is that they scale much better in complex UIs since the developer doesnt have to manage state manually, whether that be in session or urls. &lt;/p&gt;&lt;p&gt;2) The dependencies list for Wicket is completely off. Looks like you listed the kitchen sink there.&lt;/p&gt;&lt;p&gt;~/dev/src/wicket/wicket&amp;gt; mvn dependency:tree&lt;/p&gt;&lt;p&gt;[INFO] [dependency:tree]&lt;br /&gt;[INFO] org.apache.wicket:wicket:jar:1.4-SNAPSHOT&lt;br /&gt;[INFO] +- org.slf4j:slf4j-log4j12:jar:1.4.2:test&lt;br /&gt;[INFO] |  \- log4j:log4j:jar:1.2.13:test&lt;br /&gt;[INFO] +- javax.servlet:servlet-api:jar:2.3:provided&lt;br /&gt;[INFO] +- org.slf4j:slf4j-api:jar:1.4.2:compile&lt;br /&gt;[INFO] +- junit:junit:jar:3.8.1:provided&lt;br /&gt;[INFO] +- javax.portlet:portlet-api:jar:1.0:provided&lt;br /&gt;[INFO] \- org.apache.portals.bridges:portals-bridges-common:jar:1.0.3:provided&lt;/p&gt;&lt;p&gt;so really only org.slf4j:slf4j-api:jar:1.4.2:compile is required - that is only one jar.&lt;/p&gt;&lt;p&gt;of course if you runs this on wicket-examples project, which demonstrates integrations with spring/guice and a bunch of other modules, you will end up with the kitchen-sink list of dependencies you have.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Cheers&lt;/p&gt;</description>
 <pubDate>Tue, 15 Apr 2008 15:35:14 -0400</pubDate>
 <dc:creator>ivaynberg</dc:creator>
 <guid isPermaLink="false">comment 2734 at http://java.dzone.com</guid>
</item>
<item>
 <title>Yes of course. GnuPlot Web&#039;s</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2730</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;Yes of course. &lt;/p&gt;&lt;p&gt;GnuPlot Web&#039;s source code is covered with the license WYWTDWT (=What You Want To Do With This) &lt;br /&gt;
&lt;/p&gt;</description>
 <pubDate>Tue, 15 Apr 2008 10:14:38 -0400</pubDate>
 <dc:creator>jmarranz</dc:creator>
 <guid isPermaLink="false">comment 2730 at http://java.dzone.com</guid>
</item>
<item>
 <title>Hi Jose,thanks a lot for the</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2729</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;Hi Jose,&lt;/p&gt;&lt;p&gt;thanks a lot for the example - it works ;-) Can I add this to the 2. part of my survey (under public domain with you as the author)?&lt;/p&gt;&lt;p&gt;Peter. &lt;/p&gt;</description>
 <pubDate>Tue, 15 Apr 2008 09:23:49 -0400</pubDate>
 <dc:creator>peathal</dc:creator>
 <guid isPermaLink="false">comment 2729 at http://java.dzone.com</guid>
</item>
<item>
 <title>I think that the web</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2711</link>
 <description>&lt;!--paging_filter--&gt;I think that the web framework should also be categorized by development context,&lt;br /&gt;newbies/expert&lt;br /&gt;small/large team&lt;br /&gt;small/complex project&lt;br /&gt;using or not graphic IDE with D&amp;amp;D component.....&lt;br /&gt;&lt;br /&gt;personally I think that the best framework is the one you create yourself,&lt;br /&gt;&lt;br /&gt;after using 2 or 3 different kind of web framework and once you get the big ideas behind it&lt;br /&gt;it is easy to make one yourself based on velocityView for example</description>
 <pubDate>Mon, 14 Apr 2008 11:19:17 -0400</pubDate>
 <dc:creator>honsali</dc:creator>
 <guid isPermaLink="false">comment 2711 at http://java.dzone.com</guid>
</item>
<item>
 <title>Bruno: There should really</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2708</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;&lt;i&gt;Bruno: There should really be a wiki somewhere or some kind of taxonomy to help  categorizing / choosing them.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Some time ago I made a brief categorization of Java web frameworks, it may be useful to you:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;/news/there-no-best-web-framework#comment-675&quot; target=&quot;_blank&quot;&gt;Here&lt;/a&gt; and &lt;a href=&quot;http://www.theserverside.com/news/thread.tss?thread_id=47824#243768&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Regards&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
 <pubDate>Mon, 14 Apr 2008 09:23:39 -0400</pubDate>
 <dc:creator>jmarranz</dc:creator>
 <guid isPermaLink="false">comment 2708 at http://java.dzone.com</guid>
</item>
<item>
 <title>My contribution: Gnuplot</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2706</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt; My contribution: &lt;a href=&quot;http://itsnat.sourceforge.net/php/support/examples/Gnuplot.zip&quot; target=&quot;_blank&quot;&gt;Gnuplot Web&lt;/a&gt;  based on &lt;a href=&quot;http://www.itsnat.org&quot; target=&quot;_blank&quot;&gt;ItsNat &lt;/a&gt;&lt;/p&gt;&lt;p&gt; ItsNat is a new Java web application framework strongly focused on AJAX from scratch. Basically the server keeps a W3C DOM tree of the page, the client is updated automatically when the server DOM tree is changed using W3C DOM APIs, in summary: DHTML on the server. Templates are pure HTML files with no logic. ItsNat provides optional components reusing data y selection models from Swing.&lt;/p&gt;&lt;p&gt; This Gnuplot web version is an AJAX application. &lt;/p&gt;&lt;p&gt; I&#039;ve spent 2 hours and 15 minutes, 50 minutes spent building the application. The remaining time was spent trying to figure how to run Gnuplot: trying to execute the pure windows version of gnuplot (failed, is a GUI), then trying the cygwin version (missing DLL cyggd-2.dll), investigating what cygwin package installs cyggd-2.dll, then installing libgd2 in my cygwin instalation and copying required dlls to setup an standalone version of Gnuplot... &lt;/p&gt;&lt;p&gt; This application runs on:&lt;/p&gt;&lt;p&gt;  Desktop browsers: FireFox 1.x, MSIE 6+, Safari 3+, Opera 9+ &lt;/p&gt;&lt;p&gt;  Mobile browsers (yes including AJAX): Opera Mini 4, Opera Mobile 8.6, Minimo 0.2, NetFront 3.5 and ... IE Mobile 6 (WM6) !! &lt;/p&gt;&lt;p&gt;  Notes: ItsNat distribution included is a prerelease of the upcoming v0.3 (current public version is 0.2)&lt;br /&gt; &lt;/p&gt;&lt;p&gt;  GnuplotHelper class is slightly modified.&lt;/p&gt;&lt;p&gt;  Source code summary:&lt;/p&gt;&lt;p&gt;Template: &lt;/p&gt;
&lt;pre class=&quot;xml&quot;&gt;&amp;lt;!-- &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt; --&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Strict//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;head&amp;gt;&lt;br /&gt;        &amp;lt;title&amp;gt;WebGnuplot&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;/head&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;h2&amp;gt;WebGnuplot&amp;lt;/h2&amp;gt;&lt;br /&gt;        &lt;br /&gt;        &amp;lt;textarea cols=&amp;quot;25&amp;quot; rows=&amp;quot;10&amp;quot; id=&amp;quot;commandsId&amp;quot;&amp;gt;         &lt;br /&gt;        &amp;lt;/textarea&amp;gt;&lt;br /&gt;        &amp;lt;br /&amp;gt;&lt;br /&gt;        &amp;lt;input id=&amp;quot;plotId&amp;quot; type=&amp;quot;button&amp;quot; value=&amp;quot;Click me, to run the statements above&amp;quot; /&amp;gt;&lt;br /&gt;        &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;        &amp;lt;img src=&amp;quot;&amp;quot; id=&amp;quot;plotImageId&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;p&gt;Template processor:&lt;/p&gt;&lt;pre class=&quot;java&quot;&gt;package webgnuplot;&lt;br /&gt;&lt;br /&gt;import java.awt.event.ActionEvent;&lt;br /&gt;import java.awt.event.ActionListener;&lt;br /&gt;import java.io.UnsupportedEncodingException;&lt;br /&gt;import java.net.URLEncoder;&lt;br /&gt;import javax.swing.text.BadLocationException;&lt;br /&gt;import org.itsnat.comp.ItsNatComponentManager;&lt;br /&gt;import org.itsnat.comp.html.ItsNatHTMLInputButtonNormal;&lt;br /&gt;import org.itsnat.comp.html.ItsNatHTMLTextArea;&lt;br /&gt;import org.itsnat.core.html.ItsNatHTMLDocument;&lt;br /&gt;import org.w3c.dom.Element;&lt;br /&gt;import org.w3c.dom.html.HTMLDocument;&lt;br /&gt;import org.w3c.dom.html.HTMLImageElement;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class GnuPlotListener implements ActionListener&lt;br /&gt;{&lt;br /&gt;    protected ItsNatHTMLDocument itsNatDoc;&lt;br /&gt;    protected ItsNatHTMLTextArea textArea;&lt;br /&gt;    protected ItsNatHTMLInputButtonNormal button;&lt;br /&gt;    &lt;br /&gt;    /** Creates a new instance of GnuPlotListener */&lt;br /&gt;    public GnuPlotListener(ItsNatHTMLDocument itsNatDoc)&lt;br /&gt;    {&lt;br /&gt;        this.itsNatDoc = itsNatDoc;&lt;br /&gt;        ItsNatComponentManager compMgr = itsNatDoc.getItsNatComponentManager();&lt;br /&gt;        &lt;br /&gt;        HTMLDocument doc = itsNatDoc.getHTMLDocument();&lt;br /&gt;        &lt;br /&gt;        Element commandsElem = doc.getElementById(&amp;quot;commandsId&amp;quot;);        &lt;br /&gt;        this.textArea = (ItsNatHTMLTextArea)compMgr.createItsNatComponent(commandsElem);&lt;br /&gt;        &lt;br /&gt;        javax.swing.text.Document swingDoc = textArea.getDocument();&lt;br /&gt;        String commands = &amp;quot;&amp;quot;;&lt;br /&gt;        commands += &amp;quot;set xrange[-3:7] \n&amp;quot;;&lt;br /&gt;        commands += &amp;quot;set yrange[1:5] \n&amp;quot;;&lt;br /&gt;        commands += &amp;quot;set isosamples 50 \n&amp;quot;;        &lt;br /&gt;        commands += &amp;quot;set hidden3d \n&amp;quot;;        &lt;br /&gt;        commands += &amp;quot;splot exp(-0.2*x)*cos(x*y)*sin(y) \n&amp;quot;;        &lt;br /&gt;        try { swingDoc.insertString(0,commands,null); } catch(BadLocationException ex){ }    &lt;br /&gt;        // Alternative: textArea.setText(commands);&lt;br /&gt;        &lt;br /&gt;        Element plotElem = doc.getElementById(&amp;quot;plotId&amp;quot;);&lt;br /&gt;        this.button = (ItsNatHTMLInputButtonNormal)compMgr.createItsNatComponent(plotElem);&lt;br /&gt;        button.getButtonModel().addActionListener(this);                &lt;br /&gt;        &lt;br /&gt;        setImage(commands);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void actionPerformed(ActionEvent e)&lt;br /&gt;    {&lt;br /&gt;        javax.swing.text.Document swingDoc = textArea.getDocument();&lt;br /&gt;        String commands = &amp;quot;&amp;quot;; &lt;br /&gt;        try { commands = swingDoc.getText(0,swingDoc.getLength()); } catch(BadLocationException ex){ }&lt;br /&gt;        // Alternative: String commands = textArea.getText();  &lt;br /&gt;        setImage(commands);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public void setImage(String commands)&lt;br /&gt;    {&lt;br /&gt;        HTMLImageElement img = (HTMLImageElement)itsNatDoc.getDocument().getElementById(&amp;quot;plotImageId&amp;quot;);&lt;br /&gt;        try{ commands = URLEncoder.encode(commands,&amp;quot;UTF-8&amp;quot;); } catch(UnsupportedEncodingException ex) {}&lt;br /&gt;        img.setSrc(&amp;quot;imgservlet?commands=&amp;quot; + commands);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; 
imgservlet servlet basically calls GnuplotHelper.getImageBytes(String) and outputs the image to the OutputStream of the request.&lt;/p&gt;&lt;p&gt;Enjoy&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
 <pubDate>Mon, 14 Apr 2008 08:13:25 -0400</pubDate>
 <dc:creator>jmarranz</dc:creator>
 <guid isPermaLink="false">comment 2706 at http://java.dzone.com</guid>
</item>
<item>
 <title>Interesting, I did my own</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2699</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;Interesting, I did my own little research exercise on the subject, it is a never ending work :&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://docs.google.com/Doc?id=ajgdx7ccvkxg_50ccp25f&quot; id=&quot;publishedDocumentUrl&quot; class=&quot;tabcontent&quot; target=&quot;_blank&quot;&gt;http://docs.google.com/Doc?id=ajgdx7ccvkxg_50ccp25f&lt;/a&gt;&lt;/p&gt;&lt;p&gt;There should really be a wiki somewhere or some kind of taxonomy to help  categorizing / choosing them.&lt;/p&gt;&lt;p&gt;Hope it helps &lt;/p&gt;</description>
 <pubDate>Mon, 14 Apr 2008 04:28:13 -0400</pubDate>
 <dc:creator>brunov</dc:creator>
 <guid isPermaLink="false">comment 2699 at http://java.dzone.com</guid>
</item>
<item>
 <title>In my planned continuation</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2690</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;In my planned continuation of this survey I will only cover the usage of MyFaces and Struts, because of my limited time. &lt;/p&gt;&lt;p&gt;Maybe you can do the necessary implementation of the others? :-)&lt;/p&gt;&lt;p&gt;&lt;div class=&quot;quote&quot;&gt;&lt;div class=&quot;quote-author&quot;&gt;Quote:&lt;/div&gt; To each his own I suppose. &lt;/div&gt;&lt;/p&gt;&lt;p&gt;What do you mean with &#039;own&#039;? Own implementation? &lt;/p&gt;&lt;p&gt;Peter. &lt;/p&gt;</description>
 <pubDate>Sun, 13 Apr 2008 16:44:16 -0400</pubDate>
 <dc:creator>peathal</dc:creator>
 <guid isPermaLink="false">comment 2690 at http://java.dzone.com</guid>
</item>
<item>
 <title>Ups, sorry for this. I will</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2688</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;Ups, sorry for this. I will remove the comment in the article now. I thought I looked on the code stats, but really: thinwire is active! &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Peter. &lt;/p&gt;</description>
 <pubDate>Sun, 13 Apr 2008 16:09:48 -0400</pubDate>
 <dc:creator>peathal</dc:creator>
 <guid isPermaLink="false">comment 2688 at http://java.dzone.com</guid>
</item>
<item>
 <title>Wow. What about JSF using</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2684</link>
 <description>&lt;!--paging_filter--&gt;Wow. What about JSF using MyFaces, RichFaces, IceFaces, or Facelets? Struts? Spring UI? To each his own I suppose.</description>
 <pubDate>Sun, 13 Apr 2008 13:10:45 -0400</pubDate>
 <dc:creator>Budoray</dc:creator>
 <guid isPermaLink="false">comment 2684 at http://java.dzone.com</guid>
</item>
<item>
 <title>peathal wrote:Yes I used a</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2680</link>
 <description>&lt;!--paging_filter--&gt;&lt;div class=&quot;quote&quot;&gt;&lt;div class=&quot;quote-author&quot;&gt;&lt;em&gt;peathal&lt;/em&gt; wrote:&lt;/div&gt;&lt;p&gt;Yes I used a separate servlet and it would be better if i can avoid this. But actually I don&#039;t understand how? You mean that ClickApplication.getPath should return null if the page requests the image? Please, could you provide an example for this? Especially for the file ClickApplication.htm.&lt;/div&gt;&lt;/p&gt;&lt;p&gt;Here is an example of how to stream directly: http://www.avoka.com/click-examples/direct-page.htm&lt;/p&gt;&lt;p&gt;However having a closer look at your example you actually want to render a html image tag. I will email you an example of this since it is probably impolike of me to flood the comments with Click code ;-) &lt;/p&gt;&lt;p&gt;&lt;div class=&quot;quote&quot;&gt;&lt;div class=&quot;quote-author&quot;&gt;Quote:&lt;/div&gt;You mean I could remove the file?&lt;/div&gt;&lt;/p&gt;&lt;p&gt;No the file is still needed, but only the package has to be specified. From that Click will be able to map templates to classes. So you only need:&lt;/p&gt;&lt;p&gt;  &amp;lt;click-app&amp;gt;&lt;br /&gt;    &amp;lt;pages package=&amp;quot;de.wg.web.click&amp;quot;&amp;gt;&amp;lt;/pages&amp;gt;&lt;br /&gt;  &amp;lt;/click-app&amp;gt; &lt;/p&gt;&lt;p&gt;kind regards&lt;/p&gt;&lt;p&gt;bob &lt;/p&gt;</description>
 <pubDate>Sun, 13 Apr 2008 11:39:16 -0400</pubDate>
 <dc:creator>sabob</dc:creator>
 <guid isPermaLink="false">comment 2680 at http://java.dzone.com</guid>
</item>
<item>
 <title>Nice too see somebody make</title>
 <link>http://java.dzone.com/tips/java-web-frameworks-survey#comment-2679</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;Nice too see somebody make an effort to try out different frameworks..&lt;/p&gt;&lt;p&gt;Thinwire development team is pretty active they just haven&#039;t made any release for a while. &lt;/p&gt;&lt;p&gt;Subversion stats :  http://sourceforge.net/project/stats/detail.php?group_id=170706&amp;amp;ugn=thinwire&amp;amp;type=svn&amp;amp;mode=12months &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;More info about the current state of thinwire. &lt;/p&gt;http://truecode.blogspot.com/2008/04/state-of-thinwire-framework-2008.html&lt;p&gt;Pether &lt;/p&gt;</description>
 <pubDate>Sun, 13 Apr 2008 10:18:46 -0400</pubDate>
 <dc:creator>pether</dc:creator>
 <guid isPermaLink="false">comment 2679 at http://java.dzone.com</guid>
</item>
</channel>
</rss>
