Source: http://forum.javaeye.com/viewtopic.php? T = 6035 & SID = 42B6F6B88EE6A3CC2E2CCDEA70A7FDF9
TapeStry has been used for a while. It is basically a lot about TapeStry, but some problems are slowly discovered, although TapeStry is known as the reusable Server-side control, it is known as HTML template, but actually some problems. First, the HTML template is actually unhappy. In fact, after a dynamic page is written, the tool to open the editor with the tools such as Dreamweaver, so this advantage can be said to be weak. Second, the myth of the development of reusable controls. Although the place used after the control is developed, he has the following shortcomings, enough to reuse the benefits of reusable controls (1) The cost of developing controls, develop controls to write .jwc, write .js, To write .html, write .script, to write Java, to write library definition, too complicated. (2) Understand / use the code of complex controls, TREE as an example, constructing TreeModel is a very troublesome thing. It is also understood that TableModel, simple table, TableModel, TableSession, is too complicated. And use jsp, there is treetag, (http://www.jenkov.dk/projects/treetaG/treetag .jsp) DISPLAYTAG is a very simple thing, IN FACT I'M WONDERING TAGLIB or Velocity can also do some reusable things, making things to replace Tapestry's so-called reusable controls Not more difficult. Anyway, DisplayTag / Treetag is also reused) (3) ReWind / Listeditor Listener / Abstract getter and setter is not intuitive, ugly. (4) The price used, such as Popuplink, but also understands the TapeStry corresponding control, but also understands the corresponding JavaScript, it is not as simple as the JavaScript is written directly. And it is difficult to expand, to expand Popuplink to do it with multiple things. (5) Extended price, as an example of Service, extending Service is fully clear about TapeStry. And the ability to interact with other systems (other servlets) can refer to the AD Rotator example in Tapestry In Action, a simple ad Rotator is a new service to do a lot of work, too terrible, and traditional practices AD rotator is Very easy to implement. (6) Understand the cost of Engine work principle (7) debugging, if involving URL Encoding, Engine, Session, Abstract Getter & setter, etc., it is difficult to have too many packages, and lose control. Again, Page Object's logic duplicate is too intuitive in Java Object and page specification. It is often very difficult to study the page relationship. Finally, the problem of unit testing. TapeStry is unlikely, and it is easy to use Webwork. Turning to research Webwork. However, it is said that, although Tapestry has more shortcomings, his Server end is quite good for Client information, and some URL Encoding, naming generation, etc. are very good, and it is not very good. Like, I didn't expect servlet to write like this. For me, it is very inspiring, which can be used elsewhere.