Duvida com Struts <html:select>

11 respostas
A

Galera to tentando fazer uma listagem simples usando o <html:select> do struts mas fica dando um erro aqui.
Segue erro:
Cannot find bean under name Analista

Segue Bean:

<code>

package br.com.site.beans;

import java.util.Date;
import java.util.Set;

import javax.persistence.Entity;

import javax.persistence.GeneratorType;

import javax.persistence.Id;

import javax.persistence.ManyToMany;

import javax.persistence.Table;
@Entity

@Table (name=ANALISTAS)

public class Analista {

Long id;

Date dataAdmissao;

Integer experiencia;

String qualificacoes;

String nome;

Set<Projeto> projetos;

public Date getDataAdmissao() {

return dataAdmissao;

}

public void setDataAdmissao(Date dataAdmissao) {

this.dataAdmissao = dataAdmissao;

}

public Integer getExperiencia() {

return experiencia;

}

public void setExperiencia(Integer experiencia) {

this.experiencia = experiencia;

}

@Id (generate=GeneratorType.AUTO)

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

@ManyToMany

public Set<Projeto> getProjetos() {

return projetos;

}

public void setProjetos(Set<Projeto> projetos) {

this.projetos = projetos;

}

public String getQualificacoes() {

return qualificacoes;

}

public void setQualificacoes(String qualificacoes) {

this.qualificacoes = qualificacoes;

}

public String getNome() {

return nome;

}

public void setNome(String nome) {

this.nome = nome;

}

}

</code>
segue jsp:
<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
<%@taglib uri="/WEB-INF/tld/struts-html.tld" prefix=“html”%>
<%@taglib uri="/WEB-INF/tld/struts-bean.tld" prefix=“bean”%>
<html:html>

<html:select name=“Analista” property=“analista.id”>
<html:options collection=“modelo” property=“analista.id” labelProperty=“analista.nome”/>
</html:select>

</html:html>
modelo é um arraylist que populo na minha acao
Alguem pode ajudar?
Agradeço desde já

Alberto

11 Respostas

C

Use as tags code jogador.

Licuri

Caro alots_ssa.
Não sei se vai te ajudar mais da uma olhada neste forum, lá tem um cara que esta com o mesmo problema que o seu.
http://forum.java.sun.com/thread.jspa?threadID=645818&messageID=3807006

Espero que te ajude.
E se conseguir a solucao poste ai para a galera… :slight_smile:

A

Cara ja vi o exemplo nesse link que vc mandou e ainda não consegui… Mas quando rolar eu posto aqui.

A

<html:select property=“analista” multiple=“true”>
O que significa o property? Eu tenho que botar o que neste atributo?

Acho que meu erro eh simplesmente isso e eu não to sabendo resolver

vivi_grieco
&lt;html:select property="plano" &gt;
  			&lt;html:options collection="planos" property="id" labelProperty="nomeAbreviado"/&gt;
			&lt;/html:select&gt;

o property é o nome q vc tá dando pro combobox do seu formulário, a collection é uma collection q vc tem q ter passado na sua action, a property de options é o atributo q vai ser passado p/ BD (ou p/ sua action) qnd vc der o submit do formulário, e o labelProperty é o atributo q vai aparecer no combobox.

A
Vivi_grieco na hora que eu to tentando adicionar isso no banco ta dano esse erro:

java.lang.IllegalArgumentException: argument type mismatch

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

java.lang.reflect.Method.invoke(Unknown Source)

org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:1789)

org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.java:1684)

org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:1713)

org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:1019)

org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)

org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)

org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:798)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:205)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Eu acho que eh pq no meu actionform eu so tenho os objetos dos beans. Tipo: Eu ja tenho uma classe analista, eu nao crio um analistaForm, eu simplesmente boto getAnalistaForm numa ActionForm que contem get e set para todos os beans. Vcs tem alguma ideia?

Eduardo_Rodrigues

Eu estava tendo este mesmo problema, mas com a lista de registros do select.
Para resolver eu coloquei a lista no escopo da página.

Segue o exemplo:

<%-- Verifica se a Lista da Combo não está vazia --%>
<c:if test="${not empty lsFabricante}">
			
       <c:set var="lsFabricante" value="${lsFabricante}" /> :D
<td>Fornecedor:</td><td>
			<html:select property="idFabricante"> 
				<html:option value="">selecione..</html:option>
				<html:options collection="lsFabricante" property="id" labelProperty="nome"/>
			</html:select></td>
		
		</c:if>

No meu exemplo o que dava o erro era a lsFabricante que eu tinha setado no Request na Action…
note que eu passei para uma variável local e depois usei.

Para mim resolveu.

N

e aih pessoal blz? soh leigo , mas comecei a fazer um curso nu infnet de formação em java e acabo nu inicio de janeiro…mas eu qro aprender struts ants do curso me ensinar p/ eu ja começar a estagiar fazendo struts…estou com dificuldade de fazer as ACTION , vou mandar os comandos da q eu fiz certo…SalvaDadosAction :
public class SalvaDadosAction extends Action{

public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws Exception {

SalvaDadosForm myForm = (SalvaDadosForm)form;

ClienteTO cliente = new ClienteTO();

cliente.setNome(myForm.getNome());

cliente.setEmail(myForm.getEmail());

cliente.setCpf(myForm.getCpf());

cliente.setTelefone(myForm.getTelefone());

cliente.setIdade(myForm.getIdade());

ClienteDAO dao = new ClienteDAO();
dao.insert(cliente);

return mapping.findForward(sucesso);

}

}

mas estou com dificuldade de fazer o mesmo com select e update (MostrarClienteAction e AlterarClienteAction)

Qm puder responder por favor…obnrigado pela atenção galera…

Eduardo_Rodrigues

humm…

o q vc quer faz parte de outro assunto.
Mas não tem muito segredo não…

o q vc precisa é de um tutorial de struts,
a apostila FJ-21 da caelum é boa para começar, bem didática,
fora isso segue uma apostila na rede:

http://www.ucb.br/prg/professores/fgoulart/artigo_Struts.pdf

Att e bons estudos!!
:wink:

N

valew Eduardo pela resposta , ja abri o link e ja consequi resolver oq eu qria…Obrigrado pela atenção…

Eduardo_Rodrigues

q isso, nem esquente.
A idéia aqui do Forum é essa mesmo!
:smiley:

Criado 24 de agosto de 2005
Ultima resposta 29 de nov. de 2007
Respostas 11
Participantes 6