2016-06-23 49 views
0

我想用div來迭代List,但它只重複一次。我認爲這是一個html(thyemeleaf)代碼錯誤,但我找不到它。我有另一個迭代工作,但不是div的使用tr和td。用Thymeleaf + SpringMVC迭代div

也許它不適用於div的?

HTML代碼

   <div id="portfoliolist" th:each="produto : ${estoque}"> 
        <div class="portfolio usado escambolivre" data-cat="usado escambolivre"> 
         <div class="portfolio-wrapper"> 
         <a rel="group" title="" th:href="'/produto?id='+${produto.id}"> 
          <img th:src="'images/'+${produto.id}+'.jpg'" alt="" class="img-responsive caixa-img-produto" /> 
         </a> 
          <div class="label"> 
           <div class="label-text"> 
            <span class="text-category" th:text="${produto.nome}"></span> 
           </div> 
           <div class="label-bg"></div> 
          </div> 
         </div> 
        </div> 
       </div> 

控制器代碼

@Autowired 
Estoque produtos; 
@RequestMapping("/produtos") 
    public String buscar(Model model){ 
     model.addAttribute("estoque", produtos.getProdutos()); 
     System.out.println(produtos.getProdutos()); 

     return "produtos"; 
    } 

服務代碼

@Service 
public class Estoque { 

    private static List<Produto> produtos = new ArrayList<>(); 

    static { 
     produtos.add(new Produto(new BigInteger("1"), "Nike Shox", new BigDecimal("500.00"), "Modelo v3")); 
     produtos.add(new Produto(new BigInteger("2"), "Conta de LoL", new BigDecimal("300.00"), "Platina 1")); 
     produtos.add(new Produto(new BigInteger("3"), "Nintendo 3DS", new BigDecimal("660.00"), "Acompanha 4 jogos originais")); 
     produtos.add(new Produto(new BigInteger("4"), "AWP Asiimov", new BigDecimal("130.00"), "Pouco usada (minimal wear)")); 
    } 

    public void addProduto(BigInteger id, String nome, BigDecimal preco, String descricao){ 
     produtos.add(new Produto(id, nome, preco, descricao)); 
    } 

    public List<Produto> getProdutos(){ 
     return Estoque.produtos; 
    } 
} 

And this is the result

What it should be

+0

這是什麼'的System.out.println(produtos.getProdutos());'輸出? – ChiefTwoPencils

+1

Th:每個工作在div上。你看過生成的HTML代碼(在瀏覽器中查看源代碼),看看你是否有四個div,或不是?這也可能是一個CSS問題,隱藏了最後3個元素。是你的第一個:每個都在正確的水平?放在哪裏,你會得到幾個div#portfomiolist,而你可能會考慮一個portfoliolist和幾個div#組合? – Thierry

+0

@Thierry謝謝你,我認爲我的位置沒有錯,但是我只是因爲你的評論而被雙重檢查。 –

回答

0

謝謝你們,我已經找到了答案。

該foreach是在錯誤的div,應該在它下面的一個。

此代碼現在工作:

   <div id="portfoliolist" > 
        <div class="portfolio usado escambolivre" data-cat="usado escambolivre" th:each="produto : ${estoque}"> 
         <div class="portfolio-wrapper"> 
         <a rel="group" title="" th:href="'/produto?id='+${produto.id}"> 
          <img th:src="'images/'+${produto.id}+'.jpg'" alt="" class="img-responsive caixa-img-produto" /> 
         </a> 
          <div class="label"> 
           <div class="label-text"> 
            <span class="text-category" th:text="${produto.nome}"></span> 
           </div> 
           <div class="label-bg"></div> 
          </div> 
         </div> 
        </div> 
       </div>