我在控制器中有列表
List l=serviceClientServiceImpl.getSavedParents(clientId);
uiModel.addAttribute("savedParents",l);
List<Parent> parentList =
(List<Parent>) serviceClientServiceImpl.getParents("Parent",Long.valueOf(clientId));
uiModel.addAttribute("parentList", parentList);
我正在jsp中检索它,如下面的
<ul style="max-width: 300px;" class="nav nav-pills nav-stacked" id="menuId">
<c:forEach items="${parentList}" var="test">
<li ><a href="#" value="${test.id}-${test.category}" id="${parent.id}" onclick="return getQuestions(this);" >
<input type="checkbox" value="${test.id}">${test.name }</a></li>
</c:forEach>
</ul>
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
<c:forEach items="${savedParents}" var="test1">
<ul style="max-width: 300px;" class="nav nav-pills nav-stacked">
<li class="active"><a href="#" value="${test1.id}" onclick="return getQuestions(this);">
<input type="checkbox" value="${test1.id}"></a></li>
</ul>
</c:forEach>
现在我想合并两者和test.id等于test1.id然后我想添加一个html class="active"
我尝试了以下方式
<ul style="max-width: 300px;" class="nav nav-pills nav-stacked" id="menuId">
<c:forEach items="${parentList}" var="test">
<c:forEach items="${savedParents}" var="test1">
<c:when test3="${test.id}==${test1.id }">
<li ><a href="#" class="active" value="${test.id}-${test.category}" id="${parent.id}" onclick="return getQuestions(this);" >
<input type="checkbox" value="${test.id}">${test.name }</a></li>
</c:when>
<c:otherwise>
<li ><a href="#" value="${test.id}-${test.category}" id="${parent.id}" onclick="return getQuestions(this);" >
<input type="checkbox" value="${test.id}">${test.name }</a></li>
</c:otherwise>
</c:forEach>
<%-- <li ><a href="#" value="${test.id}-${test.category}" id="${parent.id}" onclick="return getQuestions(this);" >
<input type="checkbox" value="${test.id}">${test.name }</a></li> --%>
</c:forEach>
</ul>
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
但我在eclipse中遇到错误
Multiple annotations found at this line:
- Missing required attribute
"test"
- Undefined attribute name
"test3"
- Missing required attribute
"test"
- Undefined attribute name
"test3"
任何人都能帮助我吗?
答案 0 :(得分:3)
尝试以这种方式比较字符串
<c:when test="${test.id == test1.id }">
您也可以使用eq
代替==
<c:when test="${test.id eq test1.id }">
答案 1 :(得分:1)
应该是<c:when test=
而不是<c:when test3=
尝试使用c:if
<c:set var="id1" value="2" />
<c:set var="id" value="2" />
<c:if test="${id == id1 }">
Equal
</c:if>
OR
<c:set var="id1" value="2" />
<c:set var="id" value="2" />
<c:choose>
<c:when test="${id == id1 }">
Equal
</c:when>
<c:otherwise>
Not equal
</c:otherwise>
</c:choose>
注意:
${}
c:when
标记应该包含在c:choose
标记
<c:choose>
的工作方式类似于Java switch语句,因为它允许您在多种备选方案之间进行选择。如果switch语句包含case语句,则<c:choose>
标记具有<c:when>
个标记。一个switch语句有default子句来指定默认操作,类似的方式<c:choose>
有<c:otherwise>
作为默认子句。