I use the open source framework which I wrote, called JPublish (
http://www.jpublish.org/ ). Developer roles are cleanly separated so
developers can focus on the code (writing actions in Java or any
supported scripting language such as BeanShell or Python) while
designers can focus on the graphical design (through global templates)
and content authors can just write content (using Velocity or Freemarker
for inserting dynamic elements).
JPublish with BeanShell for the actions provides a very good environment
for rapid development of webapps while still letting you change actions
which require better performance into Java classes as necessary.