您的位置:首頁技術文章
文章詳情頁

Spring MVC使用jstl 標簽c:forEach 遍歷輸出雙層嵌套List的數據方式

瀏覽:8日期:2023-12-03 11:26:08
目錄Spring MVC jstl 標簽c:forEach 遍歷輸出雙層嵌套List數據1、創建Controller2、創建對應的jsp頁面注意事項:springMVC的forEach不能正常顯示1、問題2、解決Spring MVC jstl 標簽c:forEach 遍歷輸出雙層嵌套List數據

具體操作步驟如下:

1、創建Controller

import java.util.ArrayList;import java.util.List; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping; import com.mahaochen.springmvc.domain.Goods;import com.mahaochen.springmvc.domain.Inventory; @Controller@RequestMapping('/shop')public class ShoppingController { @RequestMapping('/shoppingCart') public String getShoppingCart(HttpServletRequest request, HttpServletResponse response,Model model){ model.addAttribute('list', generateData()); return 'shoppingCart'; } private List<Inventory> generateData(){ List<Inventory> inventories = new ArrayList<Inventory>(); for(int i=0 ; i<2 ; i++){ switch (i) { case 0: Inventory inventory1 = new Inventory(); inventory1.setInventoryType('水果'); List<Goods> goodsList1 = new ArrayList<Goods>(); for(int j=0;j<5;j++){ Goods goods = new Goods(); goods.setGoodsName('蘋果'+j); goodsList1.add(goods); } inventory1.setGoodList(goodsList1); inventories.add(inventory1); break; default: Inventory inventory2 = new Inventory(); inventory2.setInventoryType('蔬菜'); List<Goods> goodsList2 = new ArrayList<Goods>(); for(int j=0;j<5;j++){ Goods goods = new Goods(); goods.setGoodsName('茄子'+j); goodsList2.add(goods); } inventory2.setGoodList(goodsList2); inventories.add(inventory2); break; } } return inventories; }}2、創建對應的jsp頁面

<%@ page language='java' contentType='text/html; charset=UTF-8' pageEncoding='UTF-8'%><%@taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %> <!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'><html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>購物車</title></head><body><c:forEach items='${list }' var='item'>${item.inventoryType}<br /><c:set value='${item.goodList }' var='subItem'/><c:forEach items='${subItem }' var='var'>--${var.goodsName }<br /></c:forEach></c:forEach></body></html>注意事項:

JSTL1.1的庫 在JSP2.0(Servlet 2.4)及以后(推薦用JSTL1.1及以上)用:

<%@taglibprefix='c' uri='http://java.sun.com/jsp/jstl/core'%>

web.xml

<?xml version='1.0' encoding='UTF-8'?><web-app version='2.4' xmlns='http://java.sun.com/xml/ns/j2ee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd' ></web-app>

在 Servlet2.3及以前,

<%@taglibprefix='c' uri='http://java.sun.com/jstl/core'%>

與2.4比較,以后版本路徑少了jsp。

web.xml

<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'> <web-app></web-app>

不然會出現以下錯誤:

org.apache.jasper.JasperException:/WEB-INF/jsp/shoppingCart.jsp(line: 10, column: 1) According to TLD or attribute directive in tag file,attribute items does not accept any expressions

springMVC的forEach不能正常顯示1、問題

在進行springMVC的forEach聯系時,出現如下錯誤

org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/index.jsp at line 12

<table border='2' bgcolor='aqua' > <c:forEach items='${list}' var='student'> <tr > <td height='50px'>${student.id}</td> <td height='50px'>${student.name}</td> </tr></c:forEach>2、解決

forEach的獲取是通過getter來進行的,在實體類中添加getter方法即可。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
国产综合久久一区二区三区