Kawai Wiki

Compare Revisions

Ignore whitespace Rev 23 → Rev 24

/trunk/src/main/java/org/kawai/model/LeftColumn.java
File deleted
\ No newline at end of file
/trunk/src/main/java/org/kawai/model/Page.java
16,6 → 16,7
private Date modifiedOn;
private int createdBy;
private Date createdOn;
private boolean isFrontPage;
public Page() { }
 
102,6 → 103,14
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}
public void setFrontPage(boolean isFrontPage) {
this.isFrontPage = isFrontPage;
}
public boolean isFrontPage() {
return isFrontPage;
}
 
@Override
public String toString() {
/trunk/src/main/java/org/kawai/dao/PageDAO.java
10,4 → 10,6
public void update(Page p);
public Page loadByName(String name, Language lang);
public Page loadFrontPage(Language lang);
}
/trunk/src/main/java/org/kawai/dao/jdbc/JdbcPageDAO.java
49,6 → 49,22
}
@Override
public Page loadFrontPage(Language lang) {
Page p = new Page();
p.setLanguageId(lang.getCode());
p.setFrontPage(true);
try {
return session.loadUnique(p);
} catch(Exception e) {
throw new RuntimeException(e);
}
}
@Override
public void update(Page p) {
try {
/trunk/src/main/java/org/kawai/AppManager.java
8,7 → 8,6
import org.kawai.dao.jdbc.JdbcPageDAO;
import org.kawai.dao.jdbc.JdbcUserDAO;
import org.kawai.model.Language;
import org.kawai.model.LeftColumn;
import org.kawai.model.Page;
import org.kawai.model.User;
import org.mentabean.DBTypes;
113,17 → 112,11
.field("body", DBTypes.STRING)
.field("languageId", "language_id", DBTypes.INTEGER)
.field("systemPage", "system_page", DBTypes.BOOLEANSTRING)
.field("frontPage", "front_page", DBTypes.BOOLEANSTRING)
.field("modifiedBy", "modified_by", DBTypes.INTEGER)
.field("modifiedOn", "modified_on", DBTypes.NOW_ON_UPDATE_TIMESTAMP)
.field("createdBy", "created_by", DBTypes.INTEGER)
.field("createdOn", "created_on", DBTypes.NOW_ON_INSERT_TIMESTAMP);
bean(LeftColumn.class, "LeftColumn")
.pk("id", DBTypes.INTEGER)
.field("html", DBTypes.STRING)
.field("modifiedBy", "modified_by", DBTypes.INTEGER)
.field("modifiedOn", "modified_on", DBTypes.NOW_ON_UPDATE_TIMESTAMP)
.field("languageId", "language_id", DBTypes.INTEGER);
}
@Override
/trunk/src/main/java/org/kawai/action/PageAction.java
2,12 → 2,14
 
import org.kawai.dao.PageDAO;
import org.kawai.dao.UserDAO;
import org.kawai.model.Language;
import org.kawai.model.Page;
import org.mentawai.filter.AuthenticationFree;
 
public class PageAction extends AbstractAction implements AuthenticationFree {
private static final String LEFT_COLUMN_KEY = "leftColumn";
private static final String BODY_COLUMN_KEY = "bodyColumn";
public PageAction(UserDAO userDAO, PageDAO pageDAO) {
super(userDAO, pageDAO);
28,14 → 30,34
output.setValue(LEFT_COLUMN_KEY, lc);
}
private Page loadFrontPage(Language lang) {
Page page = pageDAO.loadFrontPage(lang);
if (page == null) {
throw new IllegalStateException("There is no front page defined for language: " + lang);
}
return page;
}
// for ajax
public String getLeftColumn() {
setLeftColumn();
return AJAX;
}
public String execute(String name) {
public String execute() {
setLeftColumn();
String name = input.getString("name");
Page page = null;
if (name == null) {
page = loadFrontPage(language);
} else {
page = pageDAO.loadByName(name, language);
if (page == null) {
// if you cannot find the page in the language, go to front page...
page = loadFrontPage(language);
}
}
output.setValue(BODY_COLUMN_KEY, page);
return SUCCESS;
}
/trunk/src/main/webapp/WEB-INF/db/kawai.sql
22,6 → 22,38
 
 
--
-- Table structure for table `Pages`
--
 
DROP TABLE IF EXISTS `Pages`;
 
 
CREATE TABLE `Pages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`language_id` int(11) NOT NULL,
`front_page` enum('T','F') NOT NULL DEFAULT 'F',
`system_page` enum('T','F') NOT NULL DEFAULT 'F',
`title` varchar(255) DEFAULT NULL,
`body` text NOT NULL,
`modified_by` int(11) DEFAULT NULL,
`modified_on` timestamp NULL DEFAULT NULL,
`created_by` int(11) NOT NULL,
`created_on` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
UNIQUE KEY `indx_name_lang` (`name`,`language_id`)
);
 
 
--
-- Dumping data for table `Pages`
--
 
 
INSERT INTO `Pages` VALUES (1,'LeftColumn',1,'F','T',NULL,' <h3>INGLES in English!!! </h3>\r\n <ul>\r\n <li class=\"none\">\r\n <a href=\"http://www.oglobo.com.br\" class=\"large\">OGlobo</a>\r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n \r\n <h3>Section 1</h3>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n\r\n <h4>Section 2</h4>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n \r\n <h4>Section 2</h4>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n <br/>\r\n \r\n \r\n <h5>Section 3</h5>\r\n <br/>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n <br/>\r\n \r\n <h5>Section 3</h5>\r\n <br/>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n <br/>',NULL,NULL,0,'2011-10-25 01:32:07'),(2,'LeftColumn',2,'F','T',NULL,' <h3>PORTUGUES in Portuguese! </h3>\r\n <ul>\r\n <li class=\"none\">\r\n <a href=\"http://www.oglobo.com.br\" class=\"large\">OGlobo</a>\r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n \r\n <h3>Section 1</h3>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n\r\n <h4>Section 2</h4>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n \r\n <h4>Section 2</h4>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n <br/>\r\n \r\n \r\n <h5>Section 3</h5>\r\n <br/>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n <br/>\r\n \r\n <h5>Section 3</h5>\r\n <br/>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n <br/>',NULL,NULL,0,'2011-10-25 01:32:07'),(3,'Intro',1,'T','F','Welcome to the Mentawai Web Framework','<h1>News</h1>\n<ul>\n <li>Teste 1</li>\n <li>Teste 2</li>\n <li>Teste 3</li>\n <li>Teste 4</li>\n</ul>\n<br />\n\n<h2> News </h2>\n<ul>\n <li>Teste 1</li>\n <li>Teste 2</li>\n <li>Teste 3</li>\n <li>Teste 4</li>\n</ul>\n<br />\n\n<h3> News </h3>\n<ul>\n <li>Teste 1</li>\n <li>Teste 2</li>\n <li>Teste 3</li>\n <li>Teste 4</li>\n</ul>\n<br />\n\n<h4> News </h4>\n<ul>\n <li>Teste 1</li>\n <li>Teste 2</li>\n <li>Teste 3</li>\n <li>Teste 4</li>\n</ul>\n<br />\n\n<h5> News </h5>\n<ul>\n <li>Teste 1</li>\n <li>Teste 2</li>\n <li>Teste 3</li>\n <li>Teste 4</li>\n</ul>\n<br />\n',NULL,NULL,2,'2011-10-25 01:32:07'),(4,'Intro',2,'T','F','Bem-vindo ao Mentawai Web Framework','<h1>Notícias</h1>\n<ul>\n <li>Teste 1</li>\n <li>Teste 2</li>\n <li>Teste 3</li>\n <li>Teste 4</li>\n</ul>\n<br />\n\n<h2> News </h2>\n<ul>\n <li>Teste 1</li>\n <li>Teste 2</li>\n <li>Teste 3</li>\n <li>Teste 4</li>\n</ul>\n<br />\n\n<h3> News </h3>\n<ul>\n <li>Teste 1</li>\n <li>Teste 2</li>\n <li>Teste 3</li>\n <li>Teste 4</li>\n</ul>\n<br />\n\n<h4> News </h4>\n<ul>\n <li>Teste 1</li>\n <li>Teste 2</li>\n <li>Teste 3</li>\n <li>Teste 4</li>\n</ul>\n<br />\n\n<h5> News </h5>\n<ul>\n <li>Teste 1</li>\n <li>Teste 2</li>\n <li>Teste 3</li>\n <li>Teste 4</li>\n</ul>\n<br />\n',NULL,NULL,2,'2011-10-25 01:32:07');
 
 
--
-- Table structure for table `groups`
--
 
68,30 → 100,6
 
 
--
-- Table structure for table `pages`
--
 
DROP TABLE IF EXISTS `pages`;
 
 
CREATE TABLE `pages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`title` varchar(255) DEFAULT NULL,
`body` text NOT NULL,
PRIMARY KEY (`id`)
);
 
 
--
-- Dumping data for table `pages`
--
 
 
INSERT INTO `pages` VALUES (1,'LeftColumn',NULL,' <h3>Section 1</h3>\r\n <ul>\r\n <li class=\"none\">\r\n <a href=\"http://www.oglobo.com.br\" class=\"large\">OGlobo</a>\r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n \r\n <h3>Section 1</h3>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"large\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n\r\n <h4>Section 2</h4>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n \r\n <h4>Section 2</h4>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"medium\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n <br/>\r\n \r\n \r\n <h5>Section 3</h5>\r\n <br/>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n <br/>\r\n \r\n <h5>Section 3</h5>\r\n <br/>\r\n <ul>\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 1</a>\r\n \r\n </li>\r\n \r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 2</a>\r\n \r\n </li>\r\n\r\n <li class=\"none\">\r\n \r\n <a href=\"index.jsp\" class=\"small\">Link 3</a>\r\n \r\n </li>\r\n </ul>\r\n <br/>');
 
 
--
-- Table structure for table `users`
--
 
127,4 → 135,4
 
 
 
-- Dump completed on 2011-10-21 20:32:01
-- Dump completed on 2011-10-24 21:33:18
/trunk/src/main/webapp/show_page.jsp
137,181 → 137,7
</div>
 
<div id="bodyColumn">
 
<h1>Notícias</h1>
<ul>
<li>Teste 1</li>
<li>Teste 2</li>
<li>Teste 3</li>
<li>Teste 4</li>
</ul>
<br />
 
<h2>Notícias</h2>
<ul>
<li>Teste 1</li>
<li>Teste 2</li>
<li>Teste 3</li>
<li>Teste 4</li>
</ul>
<br />
 
<h3>Notícias</h3>
<ul>
<li>Teste 1</li>
<li>Teste 2</li>
<li>Teste 3</li>
<li>Teste 4</li>
</ul>
<br />
 
<h4>Notícias</h4>
<ul>
<li>Teste 1</li>
<li>Teste 2</li>
<li>Teste 3</li>
<li>Teste 4</li>
</ul>
<br />
 
<h5>Notícias</h5>
<ul>
<li>Teste 1</li>
<li>Teste 2</li>
<li>Teste 3</li>
<li>Teste 4</li>
</ul>
<br />
 
<h4>Header 1</h4>
<center>
<table border="0">
<tr>
<td colspan="3">&nbsp;</td>
</tr>
<tr>
<td width="6%">&nbsp;</td>
<td width="72%"><font color="black"> <i>"Em primeiro lugar gostaria de parabenizá-lo pelo Mentawai, pra mim é a melhor solução já pensada quando se fala em frameworks MVC.
Coordeno a equipe de TI da Escola do Futuro da USP (Universidade de São Paulo), onde realizamos projetos de CVAP (Comunidades Virtuais de Aprendizagem e Prática), educação à distância etc.
Adorei o Mentawai desde a primeira vez que li sobre ele, gostei tanto da idéia que quiz iniciar já com um projeto de médio porte, o qual tínhamos pouquíssimo prazo para entregá-lo. O resultado
não podia ter sido melhor, toda a equipe se familiarizou com o framework em menos de 2 dias! O projeto foi inteiramente concebido com Mentawai, desde então é o que usamos para desenvolver
todos os projetos! São fascinantes a velocidade, escalabilidade e a forma inteligente em que se pode construir qualquer aplicação web com o Mentawai."</i></font></td>
<td width="6%">&nbsp;</td>
</tr>
<tr>
<td width="6%">&nbsp;</td>
<td width="72%" align="right"><b><font color="blue">por Rodrigo A. Rodriguez</font></b></td>
<td width="6%">&nbsp;</td>
</tr>
<tr>
<td colspan="3">&nbsp;</td>
</tr>
 
<tr>
<td width="6%">&nbsp;</td>
<td width="72%"><font color="black"> <i>"Estou escrevendo de Teresina-PI para parabenizá-lo por esse excelente framework. Sou diretor de tecnologia do Grupo Claudino (o maior
grupo empresarial do Piauí formado por 14 empresas e mais de 12 mil funcionários) e recentemente resolvemos migrar nossos sistemas para J2EE. Depois de várias discussões, resolvemos apostar no
Mentawai principalmente pela facilidade, produtividade, ausência de XML e ser genuinamente brasileiro. Acabamos de finalizar o nosso primeiro aplicativo com duração de apenas 2 meses. A
previsão da finalização de toda a migração do nosso ERP é final de 2009. Até lá mandaremos muitas dúvidas, sugestões e críticas para o forum."</i></font></td>
<td width="6%">&nbsp;</td>
</tr>
<tr>
<td width="6%">&nbsp;</td>
<td width="72%" align="right"><b><font color="blue">por Thiago Carvalho de Sousa</font></b></td>
<td width="6%">&nbsp;</td>
</tr>
<tr>
<td colspan="3">&nbsp;</td>
</tr>
<tr>
<td width="6%">&nbsp;</td>
<td width="72%"><font color="black"> <i>"I work for Sun Microsystems Ltd and I'm involved in making a decision about Web Application Frameworks. The OpenSolaris website is
currently implemented using WebWorks2 and, to a limited extent, Spring. In my opinion this is too heavyweight for our needs and I'm hoping to introduce a light-weight framework for any new
website development. I read about Mentawai with great interest. I share your belief that scattering the execution path for an application betweem Java and XML is a recipe for disaster. So far,
Mentawai looks like a great candidate for us to use."</i></font></td>
<td width="6%">&nbsp;</td>
</tr>
<tr>
<td width="6%">&nbsp;</td>
<td width="72%" align="right"><b><font color="blue">por Gary Pennington</font></b></td>
<td width="6%">&nbsp;</td>
</tr>
 
<tr>
<td colspan="3">&nbsp;</td>
</tr>
<tr>
<td width="6%">&nbsp;</td>
<td width="72%"><font color="black"> <i>"Já usei Struts, passei pelo Webwork e tenho ele ainda em muitos projetos aqui, mas aos poucos estou migrando tudo para o Mentawai, e
estou muito satisfeito pela simplicidade dele!"</i></font></td>
<td width="6%">&nbsp;</td>
</tr>
<tr>
<td width="6%">&nbsp;</td>
<td width="72%" align="right"><b><font color="blue">por Alexandre Ortiz da Rocha</font></b></td>
<td width="6%">&nbsp;</td>
</tr>
 
<tr>
<td colspan="3">&nbsp;</td>
</tr>
<tr>
<td colspan="3" align="center"><a href="http://forum.mentaframework.org/posts/list/157.page" target="_blank">Clique aqui para ler mais depoimentos!</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:sergio.oliveira.jr at gmail.com">Compartilhe conosco o seu caso de sucesso!</a></td>
</tr>
 
</table>
</center>
<h3>Notícias</h3>
<ul>
<li>Teste 1</li>
<li>Teste 2</li>
<li>Teste 3</li>
<li>Teste 4</li>
</ul>
<br />
<h3>Visão Geral</h3>
<p>O Mentawai foi o primeiro <b>framework web MVC em Java</b> a adotar, implementar, documentar e <b>incentivar</b> todo e qualquer tipo de configuração (actions, filtros, validação, listas,
connection pooling, ioc, di, etc.) <b>única e exclusivamente</b> através de <b><u><font color="blue">configuração programática</font></u></b> (100% Java), <b>abolindo por completo</b> o uso de <b>XML
e Annotations</b> para as configurações. O framework nasceu em 08/Jun/2005 e logo depois em 18/Jul/2005 publicamos um <a href="http://www.javaworld.com/javaworld/jw-07-2005/jw-0718-mentawai.html"
target="_blank">artigo no site JavaWorld</a> enfatizando o uso de configuração programática para o controlador MVC (actions/resultados/conseqüências) assim como para validação. Nascia aí o <i><font
color="blue">ApplicationManager</font></i>: configuração em código Java <b>independente</b> do restante da sua aplicação e <b>centralizada numa única classe</b>. Apesar de termos recebidos muitas
críticas pela aversão ao XML, as vantagens da configuração programática foram ficando cada vez mais claras para a equipe do Mentawai:</p>
<ul>
<li>Mais <b>prazerosa e natural</b>, afinal estamos falando de código Java e não de uma especificação em XML.</li>
<br />
<li><b>Menos propensa a erros</b> e typos, já que uma configuração em Java pode ser compilada antes de ser carregada pela aplicação web.</li>
<br />
<li>Ótima <b>integração com IDEs</b>, permitindo usar recursos como <b>auto-complete, auto-compile</b> (build automático), <b>refactoring</b>, etc.</li>
<br />
<li><b>Flexibilidade total</b> que apenas uma linguagem de programação pode oferecer, o que te permite criar seus próprios métodos de configuração, loops, ifs, comentários, ou seja, você
possui a <b><u>liberdade para fazer a configuração se adaptar a você</u></b> e não você se adaptar ao XML.</li>
<br />
<li>Utilizar <b>linguagens de script</b> como <b>JRuby, Groovy, BeanShell</b>, etc. para configurar sua aplicação, possibilitando uma <b>configuração dinâmica</b> que pode ser <b>recarregada
automaticamente</b> pelo container a cada modificação.</li>
<br />
<li>O bom e velho <b>JavaDoc</b>, documentando todos os métodos que podem ser utilizados para configuração.</li>
<br />
</ul>
<p>Isso <b><u>não significa</u></b> que o Mentawai não possui <i>Convention over Configuration (CoC)</i>. O <a href="http://forum.mentaframework.org/posts/list/765.page" target="_blank">Mentawai
possui CoC</a> e padrões para tudo, diminuindo bastante a necessidade de configuração. Entretanto, seja por uma questão de <b>preferência por explicitamente controlar as configurações</b> ou seja por uma
questão de <b>necessidade</b>, o que inevitavelmente acontece em qualquer projeto, quando houver configurações essas serão feitas através de <b>configuração programática</b> e não através de XML,
Annotations ou arquivos properties.</p>
<p>Outro pilar em que o Mentawai se apoiou desde o início foi o <b><u>comprometimento em abstrair e simplificar as principais tarefas recorrentes de todo projeto web</u></b>. Ao invés de
direcionar o usuário para <i>qualquer outro framework que já faz isso</i>, o Mentawai oferece soluções ou abstrações para as funcionalidades básicas de toda aplicação web: pool de conexões com o banco
de dados, autenticação, autorização, IoC, DI, Envio de Email, Upload de Arquivo, Paginação, Tags, etc. O Mentawai é <b><u>totalmente contra</u></b> a política do "<i>Já existe um framework pra
isso! Procure na Internet e se vire!</i>".</p>
<p>Hoje o Mentawai é utilizado por <a href="http://forum.mentaframework.org/posts/list/157.page" target="_blank">diversas empresas e pessoas no Brasil e no exterior</a>, possui uma <a
href="http://forum.mentaframework.org" target="_blank">comunidade ativa</a> que já trocou perto de 10 mil mensagens no seu fórum de discussão, e continua evoluindo, sempre fiel aos princípios da
produtividade, simplicidade, abstração e configuração programática. Fique a vontade para conhecer o framework e veja como é fácil fazer a sua aplicação web utilizando o Mentawai.</p>
<p>Equipe Mentawai<br />
<i>21 de Abril de 2007</i></p>
 
<h2>JForum</h2>
<p><iframe frameborder="0" id="jforum-iframe" scrolling="no" height="2600" src="http://docs.mentaframework.org/posts/list/70.page"></iframe></p>
 
 
 
<mtw:out value="bodyColumn.body" />
</div>
 
<div class="clear">
/trunk/src/main/webapp/jsp/error.jsp
New file
0,0 → 1,29
<%@ page contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="mtw" uri="http://www.mentaframework.org/tags-mtw/"%>
 
<html>
<head>
<title>Error</title>
</head>
<body>
<h2>Error:</h2>
<h3>
<mtw:out value="message" />
</h3>
<h4>
<mtw:out value="exception" />
</h4>
<h5>
<mtw:out value="stackheader" />
</h5>
<mtw:out value="stacktrace" />
</body>
 
</html>