Dados em um Form + Struts

2 respostas
gabrielmassote

Tudo bem Pessoal?

Estou começando em J2EE e desenvolvi uma pequena aplicação web de cadastro, remoção e lista de usuários. Só que ao clicar em um usuário listado em uma tabela gostaria que os dados deste usuário fossem mostrados no form.

O que colocar dentre de value? pois do jeito que estou utilizando não está dando certo.

<html:form action="/adicionaPessoa">
	Nome:<html:text property="pessoa.nome" value="${pessoa.nome}" size="40" maxlength="50"/><br>
	Idade:<html:text property="pessoa.idade" value="${pessoa.idade}" size="40" maxlength="50"/><br>
	Sexo:<html:select property="pessoa.sexo" value="${pessoa.sexo}">
			<html:option value="Masculino">Masculino</html:option>
			<html:option value="Feminino">Feminino</html:option>
		 </html:select><br>
	<html:submit>Salvar</html:submit>
	<html:cancel/>
</html:form>

Obrigado,
Gabriel Massote Prado.

2 Respostas

doug

Olá
Dentro do value você, não precisa colocar o valor… você precisa colocar o name… geralmente ele é o form mapeado no struts-config.xml.
Por exemplo…
Tem um form (classe) Pessoa… dentro tem os atribuitos nome, idade e sexo… tudo string para não aumentar a complexidade.
Essa classe pessoa mapeada no struts-config… e a action também… supondo que vc mapeou o form de
pessoaForm, ok!! dai seu código ficaria mais ou menos assim

&lt;html:form action="/adicionaPessoa"&gt;
	Nome:&lt;html:text property="nome" name="pessoaForm" size="40" maxlength="50"/&gt;<br>
	Idade:&lt;html:text property="idade" name="pessoaForm" size="40" maxlength="50"/&gt;<br>
	Sexo:&lt;html:select property="sexo" name="pessoaForm"&gt;
			&lt;html:option value="Masculino"&gt;Masculino&lt;/html:option&gt;
			&lt;html:option value="Feminino"&gt;Feminino&lt;/html:option&gt;
		 &lt;/html:select&gt;<br>
	&lt;html:submit&gt;Salvar&lt;/html:submit&gt;
	&lt;html:cancel/&gt;
&lt;/html:form&gt;

Espero ter ajudado
Flwsss

gabrielmassote

É uma opção de editar, ou seja, tenho uma tabela que mostram todas as pessoas cadastradas e quando eu clico em um link “editar” ele chama uma .jsp com um form e gostaria de mostrar os dados da pessoa neste form.

Só que não sei como pegar esses dados no form.
Segue os códigos de PessoaBean e um PessoaForm, e esse PessoaForm está mapeado no struts-config.xml.

Vou postar os codigos aqui.

PessoaBean.java

public class PessoaBean {
	
	private String nome;
	private String idade;
	private String sexo;
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getIdade() {
		return idade;
	}
	public void setIdade(String idade) {
		this.idade = idade;
	}
	public String getSexo() {
		return sexo;
	}
	public void setSexo(String sexo) {
		this.sexo = sexo;
	}
	
	public String toString() {
		return "Nome: " + this.nome + " Idade: " + this.idade + " Sexo: " + this.sexo;
	}

}

PessoaForm.java

import org.apache.struts.action.ActionForm;

import tutorial.model.PessoaBean;

public class PessoaForm extends ActionForm{
	
	private PessoaBean pessoa = new PessoaBean();
	
	public PessoaBean getPessoa() {
		return this.pessoa;
	}

}

struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>

	<!-- Forms -->
	<form-beans>
		<form-bean name="pessoaForm" type="tutorial.controller.form.PessoaForm"/>
	</form-beans>

	<!-- Actions -->
	<action-mappings>
	
		<!-- Pessoas -->
		<!-- List -->
		<action path="/listaPessoas" 
				type="tutorial.controller.action.ListPessoaAction" 
				scope="request">
			<forward name="SUCCESS" path="/pessoa/lista.jsp"/>
			<forward name="FAILURE" path="/pessoa/failure.jsp"/>			
		</action>
		
		<!-- Add -->
		<action path="/adicionaPessoa" 
				type="tutorial.controller.action.AddPessoaAction" 
				name="pessoaForm"
				scope="request">
			<forward name="SUCCESS" path="/listaPessoas.do"/>
			<forward name="FAILURE" path="/pessoa/failure.jsp"/>			
		</action>
		
		<!-- Edit -->
		<action path="/editaPessoa" 
				type="tutorial.controller.action.EditPessoaAction" 
				name="pessoaForm"
				scope="request">
			<forward name="SUCCESS" path="/pessoa/form.jsp"/>
			<forward name="FAILURE" path="/pessoa/failure.jsp"/>			
		</action>
		
		<!-- Remove -->
		<action path="/removePessoa" 
				type="tutorial.controller.action.RemovePessoaAction" 
				name="pessoaForm"
				scope="request">
			<forward name="SUCCESS" path="/listaPessoas.do"/>
			<forward name="FAILURE" path="/pessoa/failure.jsp"/>			
		</action>
		        
		
	</action-mappings>	

</struts-config>

Vou testar a sua modificação mas deixando o meu form do jeito que ta.
Qualquer sugestão, aguardo.

Gabriel Massote Prado.

Criado 27 de dezembro de 2008
Ultima resposta 27 de dez. de 2008
Respostas 2
Participantes 2