Pribemas para enviar LIST dentro de objeto para o controle

5 respostas
marcelinhonbs

Pessoal to precisando de um help, to com o seguinte cenario:

@Entity
public class Home {
	
	@Id @GeneratedValue
	@Column(name="HOME_ID")
	private Long id;
	
	private String nome;
	
	private String template;
	
	private String pathPublicacao;
	
	//@OneToMany(mappedBy="home")
    @OneToMany(cascade={CascadeType.ALL})
    @JoinColumn(name="home_id")
    @IndexColumn(name="idx")
    private List<Chamada> chamadasPrincipais;
@Entity
public class Chamada {

	@Id @GeneratedValue
	@Column(name="CHAMADA_ID")
	private Long iD;
	private String texto;
	private String endImagem;
	private String urlVideo;
	
	@ManyToOne
	@JoinColumn(name="HOME_ID", insertable=false, updatable=false,nullable=false)
	private Home home;
@Resource
public class HomeController {

	private HomeDAO  dao;
	private final Result result;
	private final Validator validator;
	
	public HomeController (HomeDAO dao, Result result, Validator validator){
		this.dao = dao;
		this.result = result;
		this.validator = validator;
	}
	
	@Restrito @Get @Path("/homes/{id}")
	public Home edita(Long id){
		return dao.carrega(id);
	}
	
	@Restrito @Put @Path("/homes/{home.id}")
	public void altera(Home home){
		dao.atualiza(home);
		result.redirectTo(NoticiasController.class).lista();
	}
	

}
O problema eh que eu nao sei como eu faco para montar o JSP pra enviar para o controller as Chamadas populadas dentro do form de Home. Alguem tem alguma ideia? Fiz varias tentativas e nao chegava os dados ate o controller.

5 Respostas

Lucas_Cavalcanti

vc pode usar como nomes dos inputs:

home.chamadasPrincipais[0].iD
home.chamadasPrincipais[1].iD
home.chamadasPrincipais[2].iD

só precisa popular o id da chamada.

(algum motivo pro id ficar como iD?)

se ficar mto difícil colocar o índice vc pode colocar simplesmente []

marcelinhonbs

Na verdado eu nao passo o iD, quando eu cadastra uma home eu preciso passa os dados de X chamdas, e o ID sera autoimcrementado.

Entao eu terei que passar: nome, template e os dados das chamadas se o meu relacionamento estiver certo ele devera salvar com referencia pra chamda criada e o ID sera autoincremente.

O que eu nao sei como fazer, passar a list dentro do objeto e ler a lista para editar com os dados preenchidos.

Lucas_Cavalcanti

só usar o mesmo índice pra um mesmo objeto, nos nomes dos inputs:

home.chamadasPrincipais[0].nome
home.chamadasPrincipais[0].endImagem
home.chamadasPrincipais[0].urlVideo

home.chamadasPrincipais[1].nome
home.chamadasPrincipais[1].endImagem
home.chamadasPrincipais[1].urlVideo

...

o vraptor vai saber criar a lista com os objetos populados

marcelinhonbs

Fmza caraa…eu vo fazer os testess e responde aki =D\

Cara desculpa abusar…eu apanhei um pouco pra fazer os relacionamentos no hibernate…Se sabe falar se tem alguma coisa errada aparentemente falando ??

Vlw abrcos

Lucas_Cavalcanti

fora o nome de um dos atributos ser iD e não id, nada que eu consiga ver :wink:

Criado 14 de agosto de 2012
Ultima resposta 14 de ago. de 2012
Respostas 5
Participantes 2