Boa noite,
Sou um programador iniciante e não estou conseguindo utilizar o Vrpator da forma adequada, eu preciso passar um array, ou um list, não tenho certeza ao certo para a classe controller, eu olhei a documentação mas até por ser iniciante nao encontrei a melhor forma
Classe PaginaController:
package br.com.guide10.controller;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import org.hibernate.mapping.Array;
import com.lowagie.text.pdf.ArabicLigaturizer;
import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Result;
import br.com.guide10.business.CategoriaBO;
import br.com.guide10.models.AvaliacaoModel;
import br.com.guide10.models.CategoriaCursoModel;
import br.com.guide10.models.CategoriaModel;
import br.com.guide10.models.ComposicaoModel;
import br.com.guide10.models.CursoModel;
import br.com.guide10.types.TpavaliaType;
@Controller
public class PaginaController {
@Inject
private EntityManager entityManager;
@Inject
private Result result;
CategoriaBO categoriaBO;
public void index() {
categoriaBO = new CategoriaBO();
result.include("categoria", categoriaBO.getListCategoria(entityManager));
}
@SuppressWarnings("unchecked")
public void read (CategoriaModel categoria) {
String query = "from ";
query +=" CategoriaCursoModel c ";
query +="where ";
query +=" c.categoria.idCategoria = :idCategoria ";
List<CategoriaCursoModel> categoriaCurso = null;
categoriaCurso = (List<CategoriaCursoModel>) entityManager.createQuery(query)
.setParameter("idCategoria", categoria.getIdCategoria()).getResultList();
result.include("categoriacurso", categoriaCurso);
}
@SuppressWarnings("unchecked")
public void guides(ComposicaoModel composicao) {
String query = "from ";
query +=" ComposicaoModel c ";
query +="where ";
query +=" c.curso.idCurso = :idCurso ";
List<ComposicaoModel> guides = null;
guides = (List<ComposicaoModel>) entityManager.createQuery(query)
.setParameter("idCurso", composicao.getCurso().getIdCurso()).getResultList();
result.include("guide", guides);
result.include("avalia", TpavaliaType.values());
}
public void save (AvaliacaoModel avaliacao) {
this.entityManager.persist(avaliacao);
result.forwardTo(this).index();
}
public void create(AvaliacaoModel avaliacao) {
this.entityManager.persist(avaliacao);
result.forwardTo(this).index();
}
}
Classe AvaliacaoModel
package br.com.guide10.models;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;
import br.com.guide10.types.TpavaliaType;
@Entity
@Table(name = "c_avaliacao")
public class AvaliacaoModel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idAvaliacao;
@ManyToOne
@JoinColumn(name = "idUsuario")
private UsuarioModel usuarioPertencente;
@OneToOne
@JoinColumn(name = "idGuide")
private ComposicaoModel guide;
@Enumerated(EnumType.ORDINAL)
private TpavaliaType status;
public Long getIdAvaliacao() {
return idAvaliacao;
}
public void setIdAvaliacao(Long idAvaliacao) {
this.idAvaliacao = idAvaliacao;
}
public UsuarioModel getUsuarioPertencente() {
return usuarioPertencente;
}
public void setUsuarioPertencente(UsuarioModel usuarioPertencente) {
this.usuarioPertencente = usuarioPertencente;
}
public ComposicaoModel getGuide() {
return guide;
}
public void setGuide(ComposicaoModel guide) {
this.guide = guide;
}
public TpavaliaType getStatus() {
return status;
}
public void setStatus(TpavaliaType status) {
this.status = status;
}
}
View Guide:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<%@ include file="../../../resources/header.html"%>
<title>Guides</title>
</head>
<body id="body">
<div class="wrapper">
<%@ include file="../../../resources/jsp/sidebar.html"%>
<div id="content">
<%@ include file="../../../resources/jsp/menusupeior.jsp"%>
<div class="container-fluid ">
<div class="row d-flex align-items-md-stretch">
<div class="col-lg-6 col-md-6 ">
<div class="card to-do ">
<h2>Listando as Guides</h2>
<form method="post" action="/guide10/pagina/save">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Guides</th>
<th scope="col">Avaliação</th>
</tr>
</thead>
<tbody>
<c:forEach items="${guide }" varStatus="id" var="guide">
<input type="hidden" name="avaliacao.usuarioPertencente.idUsuario[${id.count }]" value="${auxSession.usuario.idUsuario}">
<input type="hidden" name="avaliacao.guide.idGuide[${id.count }]" value="${guide.idGuide}">
<tr>
<td> <input type="text" value="${guide.guide }" class="form-control-plaintext" readonly> </td>
<td><select name="avaliacao.status[${id.count }]">
<option value="0">Selecione</option>
<c:forEach items="${avalia}" var="status">
<option value="${status}">${status}</option>
</c:forEach>
</select></td>
</tr>
</c:forEach>
</tbody>
</table>
<input
type="submit" value="Salvar Avaliações" id="cadastrar-avaliacao">
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<%@ include file="../../../resources/scripttogle.html"%>
</body>
</html>
Como eu poderia fazer isso dar certo?