Tenho esse jsp dentro do diretório ../web-inf/product/form.jsp
<%@pagelanguage="java"contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"><title>Formulário</title></head><body><formaction="add">
Nome: <inputname="product.name"/></br>
Descrição: <inputname="product.description"/></br>
Preço: <inputname="product.price"/></br>
Data de início de venda: <inputname="product.startSaleDate"/></br><inputtype="submit"/></form></body></html>
Minha dúvida é para que ele adicionasse a um objeto product no banco e fosse para o jsp ../web-inf/product/add.jsp eu não deveria usar a action do formulário igual a "/product/add ?
Note também a mudança no nome da variável passada como argumento ao método.
Mr_Arthur
cara,
tá certo… para adicionar um produto você deve usar a url “/product/add”… Mas cuidado, passando a url dessa forma, você não está passando o nome da sua aplicação.
tente usar <c:url value="/product/add" /> no atributo action do seu form.
valeu.
Mr_Arthur
Se bem que olhando agora…
O teu action do form está certo. Poderia falar que erro está acontencendo?
Valeu.
Luiz-SP
Mr_Arthur:
Se bem que olhando agora…
O teu action do form está certo. Poderia falar que erro está acontencendo?
Valeu.
O que eu não entendo é que pelo que eu li da documentação, o action do form deveria ser “/product/add” e não só add.
Outra coisa, quando eu tento acessar a aplicação no endereço “http://localhost:8181/controle-produtos/” eu vejo uma mensagem dizendo: we should not see this. Embora o IndexController estaja assim:
Ou seja, eu acho que ele deveira mostrar o “web-inf/jsp/index/index.jsp” que está assim:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Controle de Produtos</title></head><body><h2>Pagina inicial do Sistema de Controle de Produtos</h2></body></html>
Mr_Arthur
Eu não sei se isso acontece…
Mas as vezes você pode estar com um no seu web.xml apontando pra esse arquivo index.jsp. Isso redireciona direto para ela sem chamar o vraptor (não sei se isso acontece mesmo…)
Retire o e tente denovo.
valeu.
D
davisnog
O nome da sua aplicação é controle-produtos?, vc não precisa acessar com o nome, o vraptor vai indicar para: http://localhost:8181/
Isso porque vc esta localmente.
Outra coisa no no seu form, assim como LuizClaudio falou, deve ter o mesmo o nome da variavel que vc recebe como no name do seu input, no caso:
ou
Mais nesse caso vc deveria trocar o nome do parametro do seu metodo add.
@Path("/add")publicvoidadd(Productproduct){}
Outra coisa é o @Path(“add”), nesse caso não vai para /product/form.jsp.
Tenta fazer assim:
E no seu form altera a action para "/product/add"
Isso deve resolver o seu problema.
Lucas_Cavalcanti
vc está com o filtro do vraptor registrado no web.xml?
Luiz-SP
Pelo que li essas anotações são opcionais! Na verdade a aplicação não tem um problema… eu só tô tentando endenter melhor as coisas…pq o action válido no form foi “add” ao invés de “product/add”.
Luiz-SP
Lucas Cavalcanti:
vc está com o filtro do vraptor registrado no web.xml?
Meu web.xml está assim:
<?xml version="1.0" encoding="UTF-8"?><web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID"version="2.5"><context-param><param-name>br.com.caelum.vraptor.packages</param-name><!-- Change this parameter to your app base package --><param-value>br.com.caelum.produtos</param-value></context-param><filter><filter-name>vraptor</filter-name><filter-class>br.com.caelum.vraptor.VRaptor</filter-class></filter><filter-mapping><filter-name>vraptor</filter-name><url-pattern>/*</url-pattern><dispatcher>FORWARD</dispatcher><dispatcher>REQUEST</dispatcher></filter-mapping><welcome-file-list><welcome-file>index.html</welcome-file></welcome-file-list></web-app>
Lucas_Cavalcanti
pode tirar o context-param
habilita o log de debug do vraptor e posta aqui o que aparece por favor?
Luiz-SP
Lucas Cavalcanti:
pode tirar o context-param
habilita o log de debug do vraptor e posta aqui o que aparece por favor?
Como habilito esse log, tá fazendo maior falta!
Mr_Arthur
Se você tiver um arquivo log4j.xml
altere o level do logger do vraptor para “DEBUG”
edit: pode ser um .properties também.
Lucas_Cavalcanti
tem um arquivo de exemplo no blank-project…
coloque na pasta src
MetriusDemom
Caros, aproveitando a disponibilidade do Lucas e o tópico, estou com a index.html aparecendo… para mim o filter do Vraptor é acionado, mas não toma ação…
Sou iniciante, fiz o teste com o projeto blank da Caelum em um PC e rodou perfeitamente… agora que fui para o meu mac, em uma nova workspace com o mesmo projeto (só) começou a ir para a este html… diferença drastica, no pc era java 1.5 e no mac 1.6… fora isso alguém imagina o que poderia ser…
VRaptor Log
00:14:09,693 DEBUG [VRaptor ] VRaptor received a new request
00:14:09,827 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
00:14:09,827 DEBUG [DefaultResourceTranslator] trying to access /
00:14:09,834 DEBUG [VRaptor ] VRaptor ended the request