[Struts 1.3] Cadastro

Olá pessoALL
Estou tentando criar um formulario de cadastro de produto mas estou preso num erro.

Em meu struts-config.xml tenho:

<form-beans> <form-bean name="formProduto" type="com.store.formularios.ProdutoForm" /> </form-beans> <action path="/ProdutoAction" type="com.store.controle.ProdutoAction" parameter="acao" name="formProduto" scope="request" validate="false"> <forward name="salvar" path="/produto/addProduto.jsp" /> <forward name="listar" path="/produto/listarProduto.jsp" /> </action>
Até aí tudo bem, consigo listar e consigo ir para a pagina de cadastro(esta sem o formulario ainda)…

no meu ProdutoForm tenho um produto do tipo Produto com seu metodos getters/setters

[code]public class ProdutoForm extends ActionForm{

private Produto produto;

public Produto getProduto() {
	return produto;
}

public void setProduto(Produto produto) {
	this.produto = produto;
}

}[/code]

Na JSP addProduto.jsp estou tentando criar um form da seguinte forma:

<html:form action="/ProdutoAction"> Nome:<html:text property="nome" /> Descrição:<html:text property="descricao" /> Preço:<html:text property="preco" /> Categoria:<html:text property="categoria" /> <html:submit value="Submit" /> </html:form>

Aí que vem o erro, quando rodo minha aplicação aparece:

javax.servlet.ServletException: javax.servlet.jsp.JspException: No getter method for property: “nome” of bean: “com.store.formularios.ProdutoForm”

Ja tentei ate colocar [i]produto.nome[/i] mas nada feito…

Any Idea?

E ai poderia postar o código do teu ProdutoForm.

editado

Hummm no geral o pessoal usa o fulanoForm com as propriedades que tu declara…

Por exemplo no teu form teria que ter um get e um set das propriedades nome, categoria, preco e descricao…

Como tu colocou um produto no teu form por isso ele reclama, na verdade a grosso modo tu estás tentando setar atributos tu ainda não formou um objeto propriamente dito.

Obrigado pelos replies,
Mas me diz uma coisa, não ficaria reduntante, ter que repetir todos os atributos de uma classe?

Hahahahaha bem vindo ao clube. Pelo visto tu tá iniciando no struts…

Esse é o velho problema do struts 1.X…

Poderia dar uma olhada no struts 2, uma sugestão… http://www.cajumt.com.br/download/struts2-claudio_miranda_javac.pdf

Isso mesmo…
Darei uma olhada sim !!
Valeu :smiley:

Redundante fica, mas na minha opinião é o melhor a se fazer pois os converters que o struts usa de string para integers, longs e similares não funcionam muito bem. Mas caso queira fazer desta forma, nos seus campos de formulario tem que colocar produto.nome e etc mesmo. La no form vc tem que dar um new no produto private produto = new Produto(), ele não faz isso por vc :).

Alberto

Mas maicon acabei de ver um exemplo que a pessoa ultiliza o mesmo processo que eu, só nao testei ainda…

Da uma olhadinha ai http://tramos.railsplayground.net/2007/12/10/curso-struts-aula-02
O input => <html:text property=“usuario.login” />

O que sera que estou fazendo de diferente entao ?

No seu Form tem um objeto e vc está tentando setar os valores contidos nele. Então você deve fazer assim:

<html:form action="/ProdutoAction"> Nome:<html:text property="produto.nome" /> Descrição:<html:text property="produto.descricao" /> Preço:<html:text property="produto.preco" /> Categoria:<html:text property="produto.categoria" /> <html:submit value="Submit" /> </html:form>Blz? Flw! :thumbup:

[quote=alots_ssa]Redundante fica, mas na minha opinião é o melhor a se fazer pois os converters que o struts usa de string para integers, longs e similares não funcionam muito bem. Mas caso queira fazer desta forma, nos seus campos de formulario tem que colocar produto.nome e etc mesmo. La no form vc tem que dar um new no produto private produto = new Produto(), ele não faz isso por vc :).

Alberto[/quote]

Entendi…

Tive problemas com numéricos mesmo na hora de listar dados no jsp…

[quote=von.juliano]No seu Form tem um objeto e vc está tentando setar os valores contidos nele. Então você deve fazer assim:

<html:form action="/ProdutoAction"> Nome:<html:text property="produto.nome" /> Descrição:<html:text property="produto.descricao" /> Preço:<html:text property="produto.preco" /> Categoria:<html:text property="produto.categoria" /> <html:submit value="Submit" /> </html:form>Blz? Flw! :thumbup: [/quote]

Valeu Von.juliano…

Desenvolve com struts a quanto tempo ? vale a pena continuar na versao 1.3 ? ou partir pra 2.0 ? ou largar Struts e começar JSF ?
:?:

Olá amigo, acho que assim funciona o formbean.

<form-bean name="formProduto" type="com.store.formularios.ProdutoForm">
    <form-property name="produto" type="com.store.XXXXX.Produto" />
</form-bean>

Mas o erro acontece quando vc da submit na página ou ao entrar nela, se for ao entrar coloca aí a url que vc usar pra chamar essa action.

Verificou se seu produtoForm está retonando com o produto preenchido?

E para acessar o nome do produto tem que usar produto.nome mesmo, o erro está certo:

No getter method for property: “nome” of bean: “com.store.formularios.ProdutoForm”

Não tem nenhum método get para uma propriedade nome no ProdutoForm.

[quote=getSkol]Valeu Von.juliano…

Desenvolve com struts a quanto tempo ? vale a pena continuar na versao 1.3 ? ou partir pra 2.0 ? ou largar Struts e começar JSF ?
:?: [/quote]
Cara, faz uns 6 meses que eu estou trabalhando com struts 1.2.7 (já fazia outros 6 que não trabalhava com ele), e penso da seguinte forma, todo conhecimento adquirido é importante, então não pense em “largar” o struts 1.X (até pq ele é pré-requisito p/ trabalhar na area) mas aprenda a utilizá-lo, depois aprenda à utilizar o struts 2 e depois jsf e assim vai! Em algum momento vc vai perceber que esses frameworks são virtualmente iguais (todos tem a mesma finalidade), e isso facilita muito. A dica é: vai estudando!!!

Flw! :mrgreen:

Obrigado a todos,
deu certo aqui, consegui carregar a pagina do formulario para cadastro, só tenho que pensar numa maneira agora de popular um options com os dados vindo do hibernate, assim que a página for carregar …

Valeu :wink: