Realizar consulta no Struts 2!

4 respostas
V

galera to fazendo um exemplo pequeno no Struts 2 e pra testar estou usando um arrayList como forma de armazenamento, mas não estou conseguindo exibir os dados numa outra pagina de listar_usuario.jsp.
Se alguem puder dá uma ajudinha, vlw
segue abaixo o código da minha Classe FuncionarioAction:

public class FuncionarioAction {
	Funcionario funcionario = new Funcionario();
	List<Funcionario> funcionarios = new ArrayList<Funcionario>();
	
	public void setFuncionario(Funcionario funcionario){
		this.funcionario = funcionario;
	}
	public Funcionario getFuncionario(){
		return funcionario;
	}
	public List<Funcionario> getFuncionarios(){
		
		return funcionarios;
	}
	public void salvarFuncionario(Funcionario funcionario){
		funcionarios.add(funcionario);		
	}
	public String salvar(){
		salvarFuncionario(funcionario);
		return "sucess" ;
	}
	public String listar(){
		listarFuncionarios();		
		return "secess";
	}
	public List<Funcionario> listarFuncionarios(){
		for(int i=0;i<funcionarios.size();i++){
			System.out.println(funcionario.getNome()+", "+funcionario.getCidade()+", "+funcionario.getSexo());			
		}
		return funcionarios;			
	}	
	
}

segue abaixo o codigo de listar_usuario:

<body>
<table>
	 <tr>
        <th><s:text name="Nome"/></th>
        <th><s:text name="Cidade"/></th>
        <th><s:text name="Sexo"/></th>
        
        <th> </th>
    </tr>
	<s:iterator value="funcionarios">
		<tr>
			<td><s:property value= "nome"/>
			<td><s:property value= "cidade"/>
			<td><s:property value= "sexo"/>
		</tr>
	</s:iterator>
</table>

</body>
</html>

segue abaixo o codigo do struts.xml:

<package name="default" extends="struts-default">
	
		<action name="login!*" method="{1}" class="br.com.jm.actions.LoginAction">
			<result name="invalid">/error_login.jsp</result>
			<result name="valid">/home.jsp</result>	
		</action>
		<action name="inserirUsuario!*" method="{1}" class="br.com.jm.actions.FuncionarioAction">
			<result name="sucess">/listar_usuario.jsp</result>				
		</action>
		
		<action name = "listarFuncionarios" class="br.com.jm.actions.FuncionarioAction"
			method= "listar" >
			<result name = "sucess">/listar_usuario.jsp</result>
		</action>
			
			
	</package>

4 Respostas

Jiraiya

Cara tenta da seguinte maneira…antes dos nomes dos atributos coloca o objeto, tipo…

funcionario.nome

Se eu nao estiver enganado ( se eu estiver por favor alguem me corrija)…no metodo listarFuncionarios creio que não há necessidade de realizar a iteração que você fez, sendo que o iterator faria isso

V

estava faltando isso mesmo!! so que não estou entendendo uma coisa… no caso do JSF vc tem

funcionario < managed-bean-name>

aqui eu digo que vou acessar meus atributos atraves de funcionario.nome, por exemplo, mas no caso do struts nao tenho nenhuma configuração no struts.xml!! o que eu tenho foi no FuncionarioAction instanciei funcionario… seria isso?!
vlw. Obrigado.

Jiraiya

Não é bem a instancia, ela faz parte também, mas o que “faria essa configuração” seria o método getFuncionario e setFuncionario

Se não houvesse o método getFuncionario, daria um erro quando a aplicação fosse executar o funcionario.nome por exemplo.Para o struts acessar qualquer atributo ou objeto é necessário haver os métodos getter e setter do objeto para que ele possa tanto inserir valores como retorna-los

De nada viniciusfip, qualquer coisa so perguntar ^^

V

vlw jiraiya… problema resolvido e esclarecido!!!
flw brother.

Criado 22 de julho de 2009
Ultima resposta 23 de jul. de 2009
Respostas 4
Participantes 2