我的控制器中有4个列表。产品,价格和数量。我将这些列表放在Result列表中,并通过Model对象将Result列表传递给jsp页面。 我希望输出如下。
产品1
价格1
Qty1
产品2
Price2
Qty2
以下是代码。
控制器代码
@RequestMapping(value="/demo1")
public ModelAndView demo1(){
List productName=new ArrayList();
List price=new ArrayList();
List qty=new ArrayList();
List result=new ArrayList();
productName.add("iphone");
productName.add("nokia");
price.add("70000");
price.add(2000);
qty.add(1);
qty.add(3);
result.add(productName);
result.add(price);
result.add(qty);
ModelAndView model=new ModelAndView("demo");
model.addObject("result", result);
return model;
}
我正在尝试跟随jsp但没有获得所需的输出。
JSP代码
<c:set var="i" value="0" scope="page" />
<c:forEach var="s" items="${result}" varStatus="ctr">
<ul>
<li>${s[i]}
<%-- <ul>
<c:forEach var="s1" items="${s}">
<li>${s1}</li>
</c:forEach>
</ul> --%>
</li>
</ul>
<c:set var="i" value="${i+1}" scope="page" />
</c:forEach>
任何帮助都会被贬低。谢谢。
答案 0 :(得分:1)
您可以使用变量s
<c:forEach var="s" items="${result}" varStatus="ctr">
${s}
</c:forEach>
答案 1 :(得分:1)
Java是一种面向对象的语言。您应使用。
不要创建多个相同大小的列表,并为对象的每个属性创建一个列表。使用3个字段(例如,名为Product
,name
,price
)为对象创建一个类(例如名为qty
),并使用这些对象的单个列表。 / p>
另外,请勿使用 raw 泛型。始终指定泛型类型参数,例如List<String> productName
代替List productName
。
public class Product {
private String name;
private double price;
private int qty;
public Product(String name, double price, int qty) {
this.name = name;
this.price = price;
this.qty = qty;
}
public String getName() {
return this.name;
}
public double getPrice() {
return this.price;
}
public int getQty() {
return this.qty;
}
}
List<Product> products = new ArrayList<>();
products.add(new Product("iphone", 70000, 1));
products.add(new Product("nokia", 2000, 3));
ModelAndView model = new ModelAndView("demo");
model.addObject("products", products);
return model;
<c:forEach var="product" items="${products}">
<ul>
<li><c:out value="${product.name}"/></li>
<li><fmt:formatNumber value="${product.price}" type="CURRENCY"/></li>
<li>${product.qty}</li>
</ul>
</c:forEach>