Select jsp

Galera estou com uma dúvida para lista na tag no jsp.

Loja

${produtos.loja}
<c:forEach items="${lojas }" var=“loja”>
${loja.loja }
</c:forEach>

o select fica na tela de edição, então eu precisa que vem listado todas as lojas que eu jogo pela expression language $loja.loja, porém eu preciso que já venha selecionado na tela a loja do produto que é da expressiona languagem ${produto.loja}

Vai ser mais fácil alguém te ajudar se postar o código que já tens.

1 curtida

<%@ page language=“java” contentType="text/html; charset=ISO-8859-1"
pageEncoding=“ISO-8859-1”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt” %>
<%@ taglib uri=“http://www.springframework.org/tags” prefix=“s”%>

<style type="text/css">
    body{
        padding-top: 60px;
    }
</style>
Edição de Ecomendas
Toggle navigation Edicão de Encomendas
<div class="container">
	<form action="${s:mvcUrl('EC#altera').build() }" method="get">
		<input type="hidden" name="id" value="${produtos.id }"/>
		
		<div class="form-group">
		        <label>Produto</label>
		        <input type="text" name="nome" class="form-control" value="${produtos.nome }"/>
		</div>
		
		<div class="form-group">
	        <label>Categoria</label>
	        <select name="categoria" class="form-control">
				<c:forEach items="${categorias }" var="categoria">
					 <option value="${produtos.categoria }" >${categoria.categoria }</option>
			  </c:forEach>
			</select>
	    </div>	    
	    
	    <div class="form-group">
	        <label>Nº Pedido</label>
	        <input type="text" name="pedido" class="form-control" value="${produtos.pedido }">
	    </div>
	    
	 	<div class="form-group">
	        <label>Loja</label>
			<select name="loja" class="form-control">
				<option >${produtos.loja}</option>
				<c:forEach items="${lojas }" var="loja">
					 <option>${loja.loja }</option>
			  </c:forEach>
			</select>
	    </div>
	    
	    <div class="form-group">
	        <label>Rastreio</label>
	        <input type="text" name="rastreio" class="form-control" value="${produtos.rastreio }">
	    </div>
	    
	    <div class="form-group">
	        <label>Valor Pago</label>
	        <input type="number" min="1" step="any" name="valor" class="form-control" value="${produtos.valor}"/>
	    </div>
	    
	    <div>
	   		 <label>Data da Compra</label>
	        <input type="text" name="dataPedido"  class="form-control" value='<fmt:formatDate value="${produtos.dataPedido.time}" pattern="dd/MM/yyyy"/>'/>
	    </div>
	    
	    <div>
	     	<label>Data Limite</label>
	        <input type="text" name="dataLimite" class="form-control" value='<fmt:formatDate value="${produtos.dataLimite.time}" pattern="dd/MM/yyyy"/>'/>
	    </div>
	    <input type="hidden" name="status" class="form-control" value="${produtos.status }">
	    
		<br />
		<input type="submit" class="btn btn-primary" value="Alterar"/>
	</form>
</div>

package br.com.encomendas.models;

import java.math.BigDecimal;
import java.util.Calendar;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Transient;

import org.springframework.format.annotation.DateTimeFormat;

@Entity
public class Produto {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String nome;
private String categoria;
private String pedido;
private String loja;

private String rastreio;
private BigDecimal valor;

@DateTimeFormat(pattern="dd/MM/yyyy")
private Calendar dataPedido;

@DateTimeFormat(pattern="dd/MM/yyyy")
private Calendar dataLimite;

@DateTimeFormat(pattern="dd/MM/yyyy")
private Calendar dataVenda;

@DateTimeFormat(pattern="dd/MM/yyyy")
private Calendar dataRecebida;
private Status status;

private BigDecimal valorVenda;


public BigDecimal getValorVenda() {
	return valorVenda;
}

public void setValorVenda(BigDecimal valorVenda) {
	this.valorVenda = valorVenda;
}

@Transient
private boolean atrasado;

public Produto() {
	// TODO Auto-generated constructor stub
}

public String getLoja() {
	return loja;
}

public void setLoja(String loja) {
	this.loja = loja;
}
public Calendar getDataLimite() {
	return dataLimite;
}

public void setDataLimite(Calendar dataLimite) {
	this.dataLimite = dataLimite;
}

public Calendar getDataPedido() {
	return dataPedido;
}

public void setDataPedido(Calendar dataPedido) {
	this.dataPedido = dataPedido;
}

public Status getStatus() {
	return status;
}

public void setStatus(Status status) {
	this.status = status;
}

public Integer getId() {
	return id;
}

public void setId(Integer id) {
	this.id = id;
}

public String getCategoria() {
	return categoria;
}

public void setCategoria(String categoria) {
	this.categoria = categoria;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public String getPedido() {
	return pedido;
}

public void setPedido(String pedido) {
	this.pedido = pedido;
}


public String getRastreio() {
	return rastreio;
}

public void setRastreio(String rastreio) {
	this.rastreio = rastreio;
}

public BigDecimal getValor() {
	return valor;
}

public void setValor(BigDecimal valor) {
	this.valor = valor;
}

public Calendar getDataVenda() {
	return dataVenda;
}

public void setDataVenda(Calendar dataVenda) {
	this.dataVenda = dataVenda;
}

public Calendar getDataRecebida() {
	return dataRecebida;
}

public void setDataRecebida(Calendar dataRecebida) {
	this.dataRecebida = dataRecebida;
}



@Override
public String toString() {
	return "Produtos [nome=" + nome + ", Categoria=" + categoria + ", pedido=" + pedido + ", loja=" + loja
			+ ", rastreio=" + rastreio + ", valor=" + valor + "]";
}

public boolean isAtrasado() {
	if(dataLimite.before(Calendar.getInstance()))
		atrasado = true;
	else {
		atrasado = false;
	}
	return atrasado;
}

public void setAtrasado(boolean atrasado) {
	this.atrasado = atrasado;
}

}

package br.com.encomendas.models;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Loja {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String loja;

public Integer getId() {
	return id;
}
public void setId(Integer id) {
	this.id = id;
}
public String getLoja() {
	return loja;
}
public void setLoja(String loja) {
	this.loja = loja;
}

}
package br.com.encomendas.controller;

import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import br.com.encomendas.dao.CategoriaDAO;
import br.com.encomendas.dao.LojaDAO;
import br.com.encomendas.dao.ProdutoDAO;
import br.com.encomendas.models.Categoria;
import br.com.encomendas.models.Loja;
import br.com.encomendas.models.Produto;
import br.com.encomendas.models.Status;

@Controller
public class EncomendasController {

@Autowired
private ProdutoDAO dao;

@Autowired
private LojaDAO lojaDAO;

@Autowired
private CategoriaDAO categoriaDao;

@RequestMapping("/")
public String index(){
	return "redirect:produtos";
}

@RequestMapping("/produtos/form")
public ModelAndView encomendas(){
	
	List<Loja> lojas = lojaDAO.listar();
	List<Categoria> categorias = categoriaDao.listar();
	ModelAndView modelAndView = new ModelAndView("produtos/form");
	modelAndView.addObject("status", Status.TRANSPORTE);
	modelAndView.addObject("lojas",lojas);
	modelAndView.addObject("categorias",categorias);
	return modelAndView ;
}

@RequestMapping(value="produtos",  method=RequestMethod.POST)
public String gravar(Produto produto){
	
	Date data = new Date();
	Calendar dataAtual = Calendar.getInstance();
	dataAtual.setTime(data);
	dataAtual.set(Calendar.MONTH, dataAtual.get(Calendar.MONTH) + 1);
	
	produto.setDataPedido(Calendar.getInstance());
	produto.setDataLimite(dataAtual);
	
	dao.gravar(produto);
	return "redirect:produtos";
}

@RequestMapping(value="produtos",method=RequestMethod.GET)
public ModelAndView listar(){
	
	
	Calendar calendar = new GregorianCalendar();
	Date trialTime = new Date();
	calendar.setTime(trialTime);
	
	//ValidaData data = new ValidaData();
	List<Produto> produtos = dao.listar();
	ModelAndView modelAndView = new ModelAndView("/produtos/lista");
	modelAndView.addObject("produtos", produtos);
	modelAndView.addObject("form",getTotal());
	return modelAndView;
}

@RequestMapping("editaEncomendas")
public ModelAndView editar(Integer id){
	
	List<Loja> lojas = lojaDAO.listar();
	List<Categoria> categorias = categoriaDao.listar();
	
	ModelAndView modelAndView = new ModelAndView("/produtos/editar");
	Produto produto = dao.mostra(id);
	modelAndView.addObject("produtos", produto);
	modelAndView.addObject("lojas",lojas);
	modelAndView.addObject("categorias",categorias);
	return modelAndView;
}

@RequestMapping("editaEncomendasFinalizadas")
public ModelAndView editarFinalizados(Integer id){
	
	List<Loja> lojas = lojaDAO.listar();
	List<Categoria> categorias = categoriaDao.listar();
	ModelAndView modelAndView = new ModelAndView("/produtos/editarFinalizado");
	Produto produto = dao.mostra(id);
	modelAndView.addObject("produtos", produto);
	modelAndView.addObject("lojas",lojas);
	modelAndView.addObject("categorias",categorias);
	return modelAndView;
}

@RequestMapping("encomendaRecebida")
public ModelAndView recebido(Integer id){
	ModelAndView modelAndView = new ModelAndView("redirect:produtos");
	Produto produto = dao.mostra(id);
	produto.setDataRecebida(Calendar.getInstance());
	produto.setStatus(Status.RECEBIDO);
	dao.merge(produto);
	return modelAndView;	
}

@RequestMapping("encomendaFinalizada")
public ModelAndView finalizada(Integer id, BigDecimal valor){
	ModelAndView modelAndView = new ModelAndView("redirect:produtos");
	Produto produto = dao.mostra(id);
	System.out.println(valor);
	produto.setDataVenda(Calendar.getInstance());
	produto.setStatus(Status.FINALIZADA);
	dao.merge(produto);
	return modelAndView;	
}


@RequestMapping(value="produtos/finalizado",method=RequestMethod.GET)
public ModelAndView listaFinalizados(){
	List<Produto> produtos = dao.finalizados();
	ModelAndView modelAndView = new ModelAndView("/produtos/finalizado");
	modelAndView.addObject("produtos", produtos);
	modelAndView.addObject("pago", getTotalPagoFinalizados());
	modelAndView.addObject("venda", dao.somaValorVenda());
	modelAndView.addObject("lucro", dao.lucro());
	return modelAndView;
}


@RequestMapping("alteraEncomenda")
public ModelAndView altera(Produto produto){
	ModelAndView modelAndView = new ModelAndView("redirect:produtos");
	dao.merge(produto);
	return modelAndView;	
}

@RequestMapping("alteraEncomendaFinalizada")
public ModelAndView alteraFinalizados(Produto produto){
	ModelAndView modelAndView = new ModelAndView("redirect:produtos/finalizado");
	dao.merge(produto);
	return modelAndView;	
}

@RequestMapping("excluiEncomenda")
public ModelAndView excluir(Integer id){
	ModelAndView modelAndView = new ModelAndView("redirect:produtos");
	dao.exclui(id);
	return modelAndView;
}

public BigDecimal getTotal(){
	List<Produto> valores = dao.listar();
	return valores.stream().map(Produto::getValor).reduce(BigDecimal.ZERO, BigDecimal::add);
}

public BigDecimal getTotalPagoFinalizados(){
	List<Produto> valores = dao.finalizados();
	return valores.stream().map(Produto::getValor).reduce(BigDecimal.ZERO, BigDecimal::add);
}

}