...
|
overflow : auto; }
|
DIV.left-column { float: left; width: 49%; } DIV.right-column { float: right; width: 49%; }
|
</style>
|
...
|
{div:id=content|class=big-col}
|
{div2} {div3:class=features} {div4:class=left-column}
|
|
{html}<div>{html} {html}<div class="features">{html} {html}<div style="float:left;width:49%">{html}
|
h3. !Chat.png! Pure Java and Polyglot
|
|
h3. !Chat.png! Pure Java and polyglot
|
Written in pure Java: code your pages and components in Java, Groovy or Scala. {div4} {div4:class=right-column}
|
|
Written in Java, suitable for Java applications, you can use Groovy or Scala instead too\! {html}</div>{html} {html}<div style="float:right; width:49%">{html}
|
h3. !injection.png! Convention over configuration
|
Say goodbye to endless XML configuration files and welcome files: dependency injection and meta-programming through annotations. {html}</div></div>{html} {div4}
|
{div3}
|
|
{html}<div class="features">{html} {html}<div style="float:left;width:49%">{html}
|
{div3:class=features} {div4:class=left-column}
|
h3. !Refresh.png! Highly productive Live class reloading means that the time between seeing an error and providing the fix is seconds, not minutes.
|
{html}</div>{html} {div4}
|
{html}<div style="float:right;width:49%">{html}
|
{div4:class=right-column}
|
h3. !accepted.png! Testable
|
Built for testability provides nice testing functionalities enchanting TDD techniques. [See Tapestry covertura report|http://tapestry.apache.org/tapestry5.1/tapestry-core/cobertura/index.html]
|
Committed to testability thoughout design; built-in utilities to enhance TDD. [See Tapestry's code coverage report|http://tapestry.apache.org/current/tapestry-core/cobertura/index.html]
|
|
{html}</div></div>{html} {div4}
|
{html}<div class="features">{html} {html}<div style="float:left;width:49%">{html}
|
{div3}
|
|
{div3:class=features} {div4:class=left-column}
|
h3. !fast.png! Fast
|
Without Java reflection use is built to cleanly support large numbers of concurrent threads. Includes GZip content compression, _javascript_ aggregation, and far future expires headers. {html}</div>{html} {html}<div style="float:right;width:49%">{html}
|
Pure Java; no reflection, not even for property expressions. Built to cleanly support large numbers of concurrent threads without contention. Automatic GZip content compression, _javascript_ aggregation, and client-side caching.
|
|
h3. !bug.png! Advanced Exception reporting
|
{div4} {div4:class=right-column}
|
|
It gives you all the tools you need to fix your problem: not just a stack trace, but every bit of information you need to know about what was doing, why it was doing it, what went wrong, and how to fix it.
|
h3. !bug.png! Advanced Exception Reporting
|
|
Gives you all the tools you need to fix your problem: not just a stack trace, but every bit of information you need to know about what Tapestry was doing, why it was doing it, what went wrong, and how to fix it.
|
|
{html}</div></div>{html} {div4}
|
{html}<div class="features">{html} {html}<div style="float:left;width:49%">{html}
|
{div3}
|
|
{div3:class=features} {div4:class=left-column}
|
h3. !Web.png! Scalable
|
Scales up big on a single server, and offers great options into a cluster. Ready for REST, it is suitable for the most staless or stateful applications {html}</div>{html} {html}<div style="float:right;width:49%">{html}
|
Scales up big on a single server, and offers great options in a cluster. Ready for REST, suitable for the most stateless or stateful applications.
|
|
{div4} {div4:class=right-column}
|
h3. !plugin.png! Adaptable and modular
|
Architecture is open and extensible. There's a clean way to add your own logic, extensions, or substitute some logic with your own. override built-in logic. Provides integration with [Hibernate|http://hibernate.org/] and [Spring|http://www.springsource.org/]. Third-party integrations with other tools, such as [Quartz|http://www.quartz-scheduler.org/]. {html}</div></div>{html} {html}</div>{html} {div4}
|
{div3}
|
More on [Tapestry philosophy|TAPESTRY:Principles]
|
{div2}
|
{div}
|