Author |
Message |
|
O ideal é você criar a aplicação do Tomcat apontando para o diretório do Eclipse (exemplo: c:\eclipse\workspace\seuProjeto).
Nesse caso qualquer JSP é só alterar e testar no Browser.
Consulte a documentação do Tomcat para saber mais:
http://tomcat.apache.org/tomcat-5.5-doc/index.html
|
 |
|
Acredito que uma vez padronizado, poderemos utilizar soluções que utilizem javascript.
Para evitar a geração de arquivos HTML gigantes como o Struts faz, poderíamos usar arquivos nessa estrutura:
/ - raiz
/js/mentawai.js
/css/mentawai.css (se necessário)
E até aproveitar essa estrutura mesmo para implementar valições no cliente.
|
 |
|
Muito bom André!
Eu adaptei a sua solução para a minha aplicação, pois eu uso o QueryManager que isola os SQLs em um arquivo properties.
Code:
public class DBListData extends AbstractDAO implements ListData {
String query;
String name;
String idColumn;
String descriptionColumn;
int size = 0;
ArrayList listLocales = new ArrayList();
private static Logger logger = Logger.getLogger(DBListData.class);
/*
* Construtor que define pt_BR como locale padrao
*/
public DBListData(String name,String query, String idColumn, String descriptionColumn){
this(name,query,idColumn,descriptionColumn,"pt_BR");
}
/*
* Rotina principal
*/
public DBListData(String name,String query, String idColumn, String descriptionColumn,String locale) {
this.query = query;
this.name = name;
this.idColumn = idColumn;
this.descriptionColumn = descriptionColumn;
logger.info("Carregando lista = "+name);
Statement stmt = null;
DAOManager dao = DAOManager.getInstance();
Connection conn = dao.getConexao();
ResultSet rs = null;
try {
Connection conexao = dao.getConexao();
stmt = super.createStatement(conexao);
rs = stmt.executeQuery(super.getQuery(query));
while (rs.next()) {
DBListDataItem item = new DBListDataItem(rs.getInt(idColumn), rs.getString(descriptionColumn), locale);
listLocales.add(item);
}
size = listLocales.size();
logger.info("lista carregada = "+size+" registros");
} catch (SQLException e) {
logger.error("[ERRO DE SQL DO DBListData]:" + e.getMessage());
} catch (Exception e) {
logger.error("[ERRO DO DBListData]:", e);
} finally {
close(rs);
close(stmt);
close(conn);
}
}
public java.util.List getValues(java.util.Locale locale) {
ArrayList list = new ArrayList();
for (int i = 0; i < listLocales.size(); i++) {
if ( ((DBListDataItem)listLocales.get(i)).getLocale().equals(locale.toString()) ) {
list.add(listLocales.get(i));
}
}
return list;
}
public String getValue(int param, java.util.Locale locale) {
ArrayList list = new ArrayList();
for (int i = 0; i < listLocales.size(); i++) {
if ( ((DBListDataItem)listLocales.get(i)).getLocale().equals(locale.toString()) ) {
list.add(listLocales.get(i));
}
}
return ((ListDataItem)list.get(param)).getValue();
}
public int size() {
return size;
}
public String getName() {
return name.toUpperCase();
}
}
Aí pra criar as listas eu uso esse código:
Code:
public void loadLists() throws IOException {
ListManager.init();
DBListData usuarios = new DBListData("USUARIOS","usuario.trazLista", "user_id", "username");
ListManager.addList(usuarios);
}
|
 |
|
Se existir essa feature eu vou achar ótimo!
|
 |
|
Oi,
No WebWork se eu quiser centralizar o texto de todo o site
eu coloco no arquivo webwork.properties isso:
Code:
webwork.locale=pt_BR
webwork.custom.i18n.resources=mensagensDoSistema
E aí no arquivo mensagensDoSistema.properties eu coloco
todo o texto, como por exemplo:
Code:
######################### MENSAGENS DO SISTEMA #########################
####### APLICACAO GERAL #######
aplicacao.titulo.cadastro=ENTRE COM OS DADOS DO CADASTRO
aplicacao.titulo.busca=ENTRE COM OS DADOS DA BUSCA
...
Como eu faria isso no Mentawai?
|
 |
|
saoj wrote:
O erro é o seguinte:
Vc está tentando injetar um java.util.Date num java.sql.Date.
java.sql.Date é um java.util.Date mas o oposto não é verdadeiro.
Bingo!
Era isso mesmo, agora tá funcionando!
|
 |
|
Isso mesmo, os outros campos vem preechidos.
o VO é esse:
Code:
import java.io.Serializable;
import java.sql.Date;
public class NovidadeVO implements Serializable {
private static final long serialVersionUID = 3256720667452782647L;
private int id;
private Date dataPublic;
private String link;
private int tipo;
private String texto;
private UsuarioVO usuarioVO=new UsuarioVO();
--- getters e setters
|
 |
|
saoj wrote:
O problema está no VOFilter na hora de colocar esse atributo no campo dataPublic, certo ?
Ele não está colocando, certo ?
Isso.
saoj wrote:
Se for isso coloca aqui o código do objeto que está recebendo esse valor, isto é, o objeto que o VOFilter está criando com os valores do input.
Ou vc está injetando direto no action esse valor ?
É na Action mesmo, tem uma innerAction "novo" que chama esse método:
Code:
public String novo() throws Exception {
NovidadeDAO dao = NovidadeDAO.getInstance();
try {
dao.adiciona(vo);
} catch (DAOException e) {
logger.error("erro no cadastro!",e);
}
return SUCCESS;
}
E no loadActions tá assim:
Code:
public void loadActions() {
// novidade
ActionConfig ac = new ActionConfig("/cadastro/novidade", NovidadeAction.class,"novo");
ac.addConsequence(NovidadeAction.SUCCESS, new Forward("/cadastro/novidade.jsp"));
ac.addConsequence(NovidadeAction.ERROR, new Forward("/cadastro/novidade.jsp"));
ac.addFilter(new NovidadeValidation());
ac.addFilter(new NovidadeConversionFilter());
ac.addFilter(new VOFilter(NovidadeVO.class, "vo"));
ac.addFilter(new InjectionFilter(true));
addActionConfig(ac);
}
|
 |
|
Então... fiz o seguinte esquema:
Code:
public class MySQLDateConverter extends LocaleConverter {
private final String MYSQL_MASK="yyyy-MM-dd";
public Object convert(Object value, Locale loc) throws ConversionException {
if (value instanceof String) {
String s = (String) value;
SimpleDateFormat sdf = new SimpleDateFormat(MYSQL_MASK,loc);
sdf.setLenient(false);
try {
return sdf.parse(s);
} catch(ParseException e) {
throw new ConversionException(e);
}
} else {
throw new ConversionException("MySQLDateConverter can only parse strings: " + value.toString());
}
}
}
E depois:
Code:
public class NovidadeConversionFilter extends ConversionFilter {
public void initConverters() {
add("dataPublic", new MySQLDateConverter());
}
Mas mesmo assim no VO a data "dataPublic" continua vindo nula...
Eu debuguei o convertor e lá chega e retorna a DAta certinho, mas
por algum motivo na Action chega nula
|
 |
|
Legal Sérgio,
Eu dei uma alterada no script pra ele criar o banco de dados mybooks.
Tá em anexo...
|
 |
|
Legal Sérgio,
Eu dei uma olhada e testei o DateConverter, mas ele só tem construtor para os estilos do DateFormat (SHORT ,MEDIUM ,LONG e FULL).
Tem como definir o meu estilo direto no conversor?
Algo assim:
Code:
public void initConverters() {
add("dataPublic", new DateConverter("YYYY-MM-DD"));
}
|
 |
|
Oi,
Estou fazendo uma app usado no VOFilter com uma classe.
Dentro da action ele vem preenchida do JSP com quase todos
os campos, exceto o campo data (que é java.sql.Date),
que eu preencho no formato YYYY-MM-DD, mas sempre vem NULL.
Isso era esperado mesmo? Preciso usar String e no DAO
converter a data?
Estou usando mentawai 1.1.1 .
|
 |
|
Faz assim:
Code:
mysqldump mybooks> mybooks.sql
|
 |
|
Legal o exemplo do MyBooks.
Onde tá o SQL de criação das tabelas?
|
 |
|
Alguém já fez? Pode postar aqui please?
|
 |
|