简而言之:在我的JSP中,我需要遍历一个自定义bean类的列表,比如List,MyClass有key和value变量,以及getter和setter,使用c:foreach jstl
详细信息:类似这样的事情:
<c:forEach var="myObject" items="${model.pair_list}">
<li data-value="${myObject.key}">${myObject.value}</li>
</c:forEach>
在Java代码中,我有:
List pairlist = new ArrayList(); // MyClass是一个简单的bean类,包含变量“key”和“value”,以及相同的getter和setter //在此列表中添加一些值 model.put(“pair_list”,pairlist);
任何提示如何使这个工作?
答案 0 :(得分:1)
首先在Java中创建一个List
MyClass
并填充它
List<MyClass> pairList = new ArrayList<>();
//assuming key and value are of type String
//repeat the following 4 lines as much as needed
MyClass myClass = new MyClass();
myClass.setKey("...");
myClass.setValue("...");
pairList.add(myClass);
//Create an Map as you model and add pairList to it
Map<String, List<MyClass>> model = new HashMap<>();
model.put('pair_list', pairList);
//Now you can add it to request for passing it to JSP/JSTL
request.setAttribute('model', model);
然后在JSTL中,它与您在问题中提到的完全相同
<c:forEach var="myObject" items="${model.pair_list}">
<li data-value="${myObject.key}">${myObject.value}</li>
</c:forEach>
答案 1 :(得分:1)
考虑您的商品属性 你能删除吗? pairList?
示例,当您将数据从控制器传递到Java代码中的视图
时List<YourObjectClass> YourArrayListData = new ArrayList<YourObjectClass>();
..........................
.... ADD DATA PROCESS ....
..........................
request.setAttribute("YourArrayList", YourArrayListData);
这是jsp文件上的jstl代码
<c:forEach items="${YourArrayList}" var="referenceIt" >
${referenceIt.property}
</c:forEach>
答案 2 :(得分:1)
在您的servlet中,只需将列表放在您发送给Jsp的请求
上根据要求
request.setAttribute("pair_list", pairlist);
在你的JSP中: -
<c:forEach var="myObject" items="${pair_list}">
<li data-value="${myObject.key}">${myObject.value}</li>
</c:forEach>