| Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/03/2010 15:01:34
|
duque
Joined: 20/03/2010 14:55:10
Messages: 15
Offline
|
Ola a todos, estou comecando a usar o mentawai e aprendendo jsp.
A duvida e a seguinte, quando coloco o form normal em uma pagina de cadastros, ou seja sem utilizar da tag "mtw" ele apresenta o seguinte erro:
Could not find action for actionName: links/ActCadastrarProduto
ActCadastrarProduto - minha action para cadastrar
links - meu diretorio onde se encontra a pagina de cadastro
caso eu utilize de form com MTW a pagina funciona perfeitamente, porem nao faz o uso do ENCTYPE o qual preciso para realizar upload de imagem.
Agradeco a quem puder me ajudar.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/03/2010 18:54:31
|
ricardojlrufino
![[Avatar]](/images/avatar/a760880003e7ddedfef56acb3b09697f.jpg)
Joined: 30/03/2008 20:07:28
Messages: 227
Location: Teresina PI
Offline
|
Da uma olhada em: http://www.mentaframework.org/fileupload.jsp
|
Ricardo JL Rufino <ricardo.jl.rufino@gmail.com> < UNYK > :: Q4Soft :: Teresina - PI
"Existe apenas um bem, o saber, e apenas um mal, a ignorância" - Sócrates
"Devemos julgar um homem mais pelas suas perguntas que pelas respostas" - Voltaire
Mentawai Developer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/03/2010 20:18:37
|
duque
Joined: 20/03/2010 14:55:10
Messages: 15
Offline
|
Ja olhei esse link, mas esta retornando o erro o qual mencionei caso eu nao coloque o mtw no form, ja caso eu coloque funciona, porem nao consigo enviar o arquivo, pois a clausula enctype nao funciona no form.
segue meus arquivos.
Classe Action
ActCadastros
Code:
package acts;
import javax.swing.JOptionPane;
import org.apache.tomcat.util.http.fileupload.FileItem;
import org.mentawai.core.BaseAction;
import org.mentawai.rule.RegexRule;
import org.mentawai.rule.RequiredFieldRule;
import org.mentawai.rule.RequiredRule;
import org.mentawai.validation.Validatable;
import org.mentawai.validation.Validator;
public class ActCadastros extends BaseAction implements Validatable{
@Override
public String execute() throws Exception{
String nome = input.getString("txtNome");
String descricao = input.getString("txtDesc");
double preco = input.getDouble("txtPreco");
double precoPromo = input.getDouble("txtPrecoPromo");
int estoque = 0;
//FileItem foto = (FileItem) input.getValue("txtFoto");
if (1==1){
return SUCCESS;
}else{
return "ERRO";
}
}
public void prepareValidator(Validator val, String string) {
String fieldClear = "Campo Obrigatorio";
String nome = input.getString("txtNome");
String descricao = input.getString("txtDesc");
double preco = input.getDouble("txtPreco");
double precoPromo = input.getDouble("txtPrecoPromo");
//FileItem foto = (FileItem) input.getValue("txtFoto");
val.add("txtNome", new RequiredFieldRule(), fieldClear);
val.add("txtDesc", new RequiredFieldRule(), fieldClear);
if(precoPromo >= preco && precoPromo != -1){
addError("Preco Promocional Deve ser menos que o preco do produto!");
}
}
}
CadastrarProdutoPagina JSP
<%@taglib uri="/WEB-INF/lib/mentawai.jar" prefix="mtw"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<mtw:inputMaskConfig/>
<mtw:inputMoneyConfig/>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250"><style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style></head>
<body>
<table width="540" height="193" border="0" cellpadding="0" cellspacing="0">
<form name="frmActCadastrarProduto" action="ActCadastros.mtw" id="cadastroProdutos" enctype="multipart/form-data"> <tr>
<td width="23" height="61"> </td>
<td width="93"> </td>
<td width="18"> </td>
<td width="91"> </td>
<td width="88"> </td>
<td width="199"> </td>
</tr>
<tr>
<td height="23" colspan="3" valign="top">Codigo do Produto:</td>
<td colspan="2" valign="top"> <mtw:inputText name="txtId" disabled="true"/></td>
<td> </td>
</tr>
<tr>
<td height="21" colspan="3" valign="top">Nome:</td>
<td colspan="2" valign="top"><mtw:inputText name="txtNome"/></td>
<td><mtw:hasError>
<h3><font color="red"><mtw:error field="txtNome" /></font></h3>
</mtw:hasError></td>
</tr>
<tr>
<td height="20" colspan="3" valign="top">Descrição:</td>
<td colspan="2" valign="top"><mtw:inputText name="txtDesc"/> <mtw:hasError>
<h3><font color="red"><mtw:error field="txtDesc" /></font></h3>
</mtw:hasError> </td>
<td></td>
</tr>
<tr>
<td height="21" colspan="3" valign="top">Preço:</td>
<td colspan="2" valign="top"><mtw:inputMoney name="txtPreco" decimals="2" dec_point="." thousands_sep=""/></td>
<td></td>
</tr>
<tr>
<td height="22" colspan="3" valign="top">Preço Promocional:</td>
<td colspan="2" valign="top"><mtw:inputMoney name="txtPrecoPromo" decimals="2" dec_point="." thousands_sep=""/> <font color="#FF0000" size="+2"><mtw:hasError><mtw:error /></mtw:hasError></font></td>
<td></td>
</tr>
<tr>
<td height="24" colspan="3" valign="top">Estoque:</td>
<td colspan="2" valign="top"><mtw:inputText name="txtEstoque"/></td>
<td></td>
</tr>
<tr>
<td height="23" colspan="3" valign="top">Foto:</td>
<td colspan="2" valign="top"><input name="txtFoto" type="file"/> <mtw:hasError>
<h3><font color="red"><mtw:error field="txtFoto" /></font></h3>
</mtw:hasError> </td>
<td></td>
</tr>
<tr>
<td height="22" colspan="3" valign="top">Em Promoção:</td>
<td colspan="2" valign="top"><input name="chkPromo" type="checkbox" id="chkPromo" value="SIM"/></td>
<td></td>
</tr>
<tr>
<td height="33"> </td>
<td> </td>
<td> </td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="33"> </td>
<td valign="top"><input type="submit" value="Cadastrar"></td>
<td colspan="2" valign="top"><input name="bttLimpar" type="reset" value="Limpar"/>
<td>
<td>
<tr>
<td height="14"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</form>
</table>
</body>
</html>
ApplicationManager
Code:
import org.mentawai.core.*;
import org.mentawai.filter.FileUploadFilter;
import org.mentawai.filter.ValidatorFilter;
import acts.ActCadastros;
public class ApplicationManager extends org.mentawai.core.ApplicationManager {
@Override
public void loadActions() {
// Java style: more verbose and more clear
addGlobalFilter(new ValidatorFilter());
ActionConfig act = new ActionConfig("/ActCadastros", ActCadastros.class);
act.addConsequence(ActCadastros.SUCCESS, new Forward("/Correto.jsp"));
act.addConsequence("ERRO", new Forward("/errado.jsp"));
act.addConsequence(ActCadastros.ERROR, new Forward("/links/CadastrarProduto.jsp"));
addActionConfig(act); // add this action to the application manager
// add this action to the application manager
act.addFilter(new FileUploadFilter());
}
}
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/03/2010 20:31:33
|
ricardojlrufino
![[Avatar]](/images/avatar/a760880003e7ddedfef56acb3b09697f.jpg)
Joined: 30/03/2008 20:07:28
Messages: 227
Location: Teresina PI
Offline
|
Tente Usar: act.addFilterFirst(new FileUploadFilter());
|
Ricardo JL Rufino <ricardo.jl.rufino@gmail.com> < UNYK > :: Q4Soft :: Teresina - PI
"Existe apenas um bem, o saber, e apenas um mal, a ignorância" - Sócrates
"Devemos julgar um homem mais pelas suas perguntas que pelas respostas" - Voltaire
Mentawai Developer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/03/2010 21:22:54
|
duque
Joined: 20/03/2010 14:55:10
Messages: 15
Offline
|
nao funcionou.
mas o erro pelo que posso perceber esta no form, ja que quando uso o form
<form></form>
funciona nao funciona, dizendo que nao consegue achar a action.
ja caso use o form
<mtw:form></mtw:form>
funciona, porem nao envia arquivos, ja que nao posso colocar o ENCTYPE.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/03/2010 19:01:37
|
ricardojlrufino
![[Avatar]](/images/avatar/a760880003e7ddedfef56acb3b09697f.jpg)
Joined: 30/03/2008 20:07:28
Messages: 227
Location: Teresina PI
Offline
|
vc pode usar o <form /> normal e setar o enctype="multipart/form-data".
E adicionar o Filtro de Upload (como primeiro) , basicamente é isso.
Acho que pode ser na validação que ta dando problema, desabilita a validação é testa...
para ver o que esta acontecendo por de baixo dos panos, lá no aplication manager, ativa o debug (setDebugeMode(true)).
|
Ricardo JL Rufino <ricardo.jl.rufino@gmail.com> < UNYK > :: Q4Soft :: Teresina - PI
"Existe apenas um bem, o saber, e apenas um mal, a ignorância" - Sócrates
"Devemos julgar um homem mais pelas suas perguntas que pelas respostas" - Voltaire
Mentawai Developer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/03/2010 20:54:15
|
duque
Joined: 20/03/2010 14:55:10
Messages: 15
Offline
|
O erro continua, mas vlw ai por estar tentando me ajuda.
Code:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Could not find action for actionName: links/ActCadastros
org.mentawai.core.Controller.service(Controller.java:555)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 12:59:59
|
IceW0lf
![[Avatar]](/images/avatar/7cbbc409ec990f19c78c75bd1e06f215.jpg)
Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline
|
Could not find action for actionName: links/ActCadastros
Nao existe essa action ai...
Existe ? Ta configurado no ApplicationManager corretamente.
|
Leiber Wallace
Voixy ::: Soluções em Telecomunicações |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 13:23:34
|
duque
Joined: 20/03/2010 14:55:10
Messages: 15
Offline
|
Sim esta configurado:
Code:
import org.mentawai.core.*;
import org.mentawai.filter.FileUploadFilter;
import org.mentawai.filter.ValidatorFilter;
import acts.ActCadastros;
public class ApplicationManager extends org.mentawai.core.ApplicationManager {
@Override
public void loadActions() {
// Java style: more verbose and more clear
addGlobalFilter(new ValidatorFilter());
ActionConfig act = new ActionConfig("/ActCadastros", ActCadastros.class);
act.addConsequence(ActCadastros.SUCCESS, new Forward("/Correto.jsp"));
act.addConsequence("ERRO", new Forward("/errado.jsp"));
act.addConsequence(ActCadastros.ERROR, new Forward("/links/CadastrarProduto.jsp"));
addActionConfig(act); // add this action to the application manager
// add this action to the application manager
act.addFilter(new FileUploadFilter());
}
}
o estranho eh que quando eu coloco o form com mtw chama essa classe, mas qdo coloco SEM o mtw nao chama a classe.
FUNCIONA:
Code:
<mtw:form action="ActCadastros.mtw">
NAO FUNCIONA:
Code:
<form action="ActCadastros.mtw">
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 13:41:38
|
ricardojlrufino
![[Avatar]](/images/avatar/a760880003e7ddedfef56acb3b09697f.jpg)
Joined: 30/03/2008 20:07:28
Messages: 227
Location: Teresina PI
Offline
|
tenta: <form action="/ActCadastros.mtw">
|
Ricardo JL Rufino <ricardo.jl.rufino@gmail.com> < UNYK > :: Q4Soft :: Teresina - PI
"Existe apenas um bem, o saber, e apenas um mal, a ignorância" - Sócrates
"Devemos julgar um homem mais pelas suas perguntas que pelas respostas" - Voltaire
Mentawai Developer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 13:48:16
|
duque
Joined: 20/03/2010 14:55:10
Messages: 15
Offline
|
ricardojlrufino wrote:
tenta: <form action="/ActCadastros.mtw">
Code:
HTTP Status 404 - /ActCadastros.mtw
--------------------------------------------------------------------------------
type Status report
message /ActCadastros.mtw
description The requested resource (/ActCadastros.mtw) is not available.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 14:01:59
|
ricardojlrufino
![[Avatar]](/images/avatar/a760880003e7ddedfef56acb3b09697f.jpg)
Joined: 30/03/2008 20:07:28
Messages: 227
Location: Teresina PI
Offline
|
vc pode usar o formSkin, que tem um visual já montado
Code:
- polo, xClear, xpBlue, xpOliva
<mtw:formSkinConfig skin="xClear"/>
<mtw:formSkin
action="AlunoAction.salvar.mtw"
method="POST"
name="frmPrincipal"
id="frmPrincipal"
caption="Cadastro de Aluno"
btnCloseOnclick="window.history.back(-1)"
btnCloseTitle="Voltar"
enctype="multipart/form-data"
>
|
Ricardo JL Rufino <ricardo.jl.rufino@gmail.com> < UNYK > :: Q4Soft :: Teresina - PI
"Existe apenas um bem, o saber, e apenas um mal, a ignorância" - Sócrates
"Devemos julgar um homem mais pelas suas perguntas que pelas respostas" - Voltaire
Mentawai Developer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 14:22:38
|
duque
Joined: 20/03/2010 14:55:10
Messages: 15
Offline
|
continua o mesmo erro, estou achando que posso ter configurado algo errado em meu projeto, irei pedir para um amigo testar as classes e posto o resultado.
resultado com formskin
Code:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Could not find action for actionName: links/ActCadastros
org.mentawai.core.Controller.service(Controller.java:555)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 14:34:33
|
ricardojlrufino
![[Avatar]](/images/avatar/a760880003e7ddedfef56acb3b09697f.jpg)
Joined: 30/03/2008 20:07:28
Messages: 227
Location: Teresina PI
Offline
|
Isso é configuração no ApplicationManager ...
pode ser que seu web.xml esteja errado !!!
De uma lida em: http://www.mentaframework.org/quick-start.jsp
e verifica se o seu ApplicationManager está na pasta raiz /src
pode ser que ele não esteja sendo carregado. !
|
Ricardo JL Rufino <ricardo.jl.rufino@gmail.com> < UNYK > :: Q4Soft :: Teresina - PI
"Existe apenas um bem, o saber, e apenas um mal, a ignorância" - Sócrates
"Devemos julgar um homem mais pelas suas perguntas que pelas respostas" - Voltaire
Mentawai Developer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 22:47:43
|
duque
Joined: 20/03/2010 14:55:10
Messages: 15
Offline
|
consegui utilizando a tag EXTRA da seguinte maneira:
<mtw:form action="ActCadastros.mtw" method="POST" extra="enctype='multipart/form-data'">
POREM, agora deu erro para converter o arquivo, sera q nao esta enviando o arquivo?
erro:
Code:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Exception while invoking action ActCadastros: null / java.lang.reflect.InvocationTargetException / java.lang.String cannot be cast to org.apache.tomcat.util.http.fileupload.FileItem / java.lang.ClassCastException
org.mentawai.core.Controller.service(Controller.java:665)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
root cause
java.lang.ClassCastException: java.lang.String cannot be cast to org.apache.tomcat.util.http.fileupload.FileItem
acts.ActCadastros.execute(ActCadastros.java:73)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.mentawai.core.InvocationChain.invoke(InvocationChain.java:299)
org.mentawai.filter.FileUploadFilter.filter(FileUploadFilter.java:201)
org.mentawai.core.InvocationChain.invoke(InvocationChain.java:139)
org.mentawai.filter.ValidatorFilter.filter(ValidatorFilter.java:184)
org.mentawai.core.InvocationChain.invoke(InvocationChain.java:139)
org.mentawai.core.Controller.invokeAction(Controller.java:763)
org.mentawai.core.Controller.service(Controller.java:628)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.
|
|
|
 |
|
|