EL表示式兩個foreach巢狀迴圈
阿新 • • 發佈:2019-02-15
集合List中加List泛型的泛型
- List<RiskEvaSuitQuestion> riskEvaSuitQuestionList = riskEvaSuitQuestionService.getQueList(1000036L);
- model.addAttribute("riskEvaSuitQuestionList",riskEvaSuitQuestionList);
- List<RiskEvaSelectItem> riskEvaSelectItemList;
- <span>List<List<RiskEvaSelectItem>></span> riskEvaSelectItemLists = new
- for (int i = 0; i < riskEvaSuitQuestionList.size(); i++) {
- riskEvaSelectItemList = riskEvaSelectItemService.getByQuestionId(riskEvaSuitQuestionList.get(i).getQuestionId());
- riskEvaSelectItemLists.add(riskEvaSelectItemList);
- }
- model.addAttribute("riskEvaSelectItemLists"
兩個foreach可以直接像if一樣巢狀用:
下面是一開始以為foreach不能嵌套出現的方法(看起來就頭疼):
- <c:forEach items="${riskEvaSuitQuestionList}" var="item" varStatus="i"> //第一個foreach
- <p style="font-size: 15px;">${i.count}.${item.content}</p><br/>
- <p style="margin-right: 50px;">
- <c:forEach begin="1" end="${riskEvaSelectItemLists.get(i.count-1).size()}" varStatus="j" step="1"> //第二個foreach
- <input style="margin-left: 50px;margin-right: 40px;" name="itemContent${i.count-1}" type="radio" value="${riskEvaSelectItemLists.get(i.count-1).get(j.count-1).itemScore}">
- ${riskEvaSelectItemLists.get(i.count-1).get(j.count-1).itemContent}
- </c:forEach>
- </p><br/>
- </c:forEach>
注意:JavaScript中預設加分預設為字串相加,必須轉換為parseInt()
往input標籤中寫值,直接定位該標籤,然後.value = 值
[javascript] view plain copy- <script>
- function calculate() {
- // 題目的總數
- var size = ${riskEvaSuitQuestionList.size()};
- var sum = 0;
- for(var i = 0;i < size;i++){
- var chkObjs = document.getElementsByName("itemContent"+i); // 巧用迴圈獲取radio名字
- for(var j=0;j < chkObjs.length;j++) {
- if (chkObjs[j].checked) { // radio選中判斷.checked
- sum = parseInt(sum) + parseInt(chkObjs[j].value);
- break;
- }
- }
- }
- document.getElementById("evaScore").value = sum;
- }
- </script>