Controller
@Controller
public class EstoqueController {
private EstoqueDao estoqueDao;
private ProdutoDao produtoDao;
private Result result;
@Inject
public EstoqueController(EstoqueDao estoqueDao, ProdutoDao produtoDao, Result result) {
this.estoqueDao = estoqueDao;
this.produtoDao = produtoDao;
this.result = result;
}
public EstoqueController() {}
public void form() {}
public void lista() {
List<Produto> produtos = produtoDao.lista();
result.include("produtos",produtos);
}
}
Dao
@RequestScoped
public class EstoqueDao {
private EntityManager manager;
@Inject
public EstoqueDao (EntityManager manager){
this.manager = manager;
}
public EstoqueDao(){}
public List<Produto> lista() {
TypedQuery<Produto> query = manager.createQuery("select u from Produto u", Produto.class);
return query.getResultList();
}
}
Modelo
@Entity
public class Estoque implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@NotEmpty
private String nome;
@NotNull
@Min(0)
private int quantidade;
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
Chamada na jsp:
<select>
<c:forEach items="${produtos}" var="produto">
<option>${produto.nome}</option>
</c:forEach>
</select>
Eu sei que tem algum erro grosseiro, espero sua resposta.