在JavaSpringMVC中如何迭代jstl列表以匹配条件
我有一个jsp页面。我正在从spring控制器传递2个模型对象在JavaSpringMVC中如何迭代jstl列表以匹配条件,java,spring-mvc,spring-boot,jstl,Java,Spring Mvc,Spring Boot,Jstl,我有一个jsp页面。我正在从spring控制器传递2个模型对象 资产(获取选定的资产) 资产(获取所有资产) 如果条件匹配,我想将选项设置为选中 我的代码 <table> <tr> <td>Asset Id :</td> <td> <form id="getAssetForm" method="get"> <select id="asset
<table>
<tr>
<td>Asset Id :</td>
<td>
<form id="getAssetForm" method="get">
<select id="assetid" name="assetid" onchange="submitForm(this);">
<c:if test="${not empty assets}">
<c:forEach items="${assets}" var="assetsproperties">
<c:choose>
<c:when test="${not empty asset}">
<c:forEach items="${asset}" var="assetobj">
<c:choose>
<c:when test="${assetobj.id} == ${assetsproperties.id}">
<option value="${assetobj.id}" selected>${assetobj.name}</option>
</c:when>
<c:otherwise>
<option value="${assetsproperties.id}">${assetsproperties.name}</option>
</c:otherwise>
</c:choose>
</c:forEach>
</c:when>
<c:otherwise>
<option value="${assetsproperties.id}">${assetsproperties.name}</option>
</c:otherwise>
</c:choose>
</c:forEach>
</c:if>
</select>
</form>
</td>
</tr>
<tr>
<td>Name :</td>
<td><input type="text" name="assetname" value="<c:if test="${not empty asset}"><c:forEach items="${asset}" var="assetobj">${assetobj.name}</c:forEach></c:if>"></td>
</tr>
<tr>
<td>Model Number :</td>
<td><input type="text" name="assetmodelnumber" value="<c:if test="${not empty asset}"><c:forEach items="${asset}" var="assetobj">${assetobj.modelNumber}</c:forEach></c:if>"></td>
</tr>
<tr>
<td>Rating (1 to 5 ):</td>
<td><input type="text" name="assetrating" value="<c:if test="${not empty asset}"><c:forEach items="${asset}" var="assetobj">${assetobj.rating}</c:forEach></c:if>"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="Save" value="Update">
</tr>
</table>
<script type="text/javascript">
function submitForm(a){
var e = document.getElementById("assetid");
var assetid = e.options[e.selectedIndex].value;
var assetnametxt = e.options[e.selectedIndex].text;
var assetnameElement = document.createElement("input");
assetnameElement.type = "hidden";
assetnameElement.name = "assetname";
assetnameElement.value = assetnametxt;
var form = document.getElementById('getAssetForm');
form.appendChild(assetnameElement);
form.setAttribute('action', "get-asset");
form.submit();
}
</script>
资产Id:
${assetobj.name}
${assetsproperties.name}
${assetsproperties.name}
姓名:
型号:
评级(1至5):
函数提交形式(a){
var e=document.getElementById(“assetid”);
var assetid=e.options[e.selectedIndex].value;
var assetnametxt=e.options[e.selectedIndex].text;
var assetnamelement=document.createElement(“输入”);
assetnameElement.type=“隐藏”;
assetnameElement.name=“assetname”;
assetnameElement.value=assetnametxt;
var form=document.getElementById('getAssetForm');
form.appendChild(assetnameElement);
form.setAttribute('action','get asset');
表单提交();
}
这是我的控制器代码:
@RequestMapping(value="/get-asset", method = RequestMethod.GET)
public String showGetAssetPage(ModelMap model,
@RequestParam("assetid") int assetid,
@RequestParam("assetname") String assetname){
System.out.println("inside showGetAssetPage() ");
List<Asset> asset = service.getAsset(assetid, assetname);
model.addAttribute("asset", asset);
List<Asset> assets = service.getAssets();
model.addAttribute("assets", assets);
return "update-asset";
}
@RequestMapping(value=“/get asset”,method=RequestMethod.get)
公共字符串showGetAssetPage(ModelMap模型,
@assetid中的RequestParam(“assetid”),
@RequestParam(“assetname”)字符串(assetname){
System.out.println(“内部showGetAssetPage()”;
List asset=service.getAsset(assetid,assetname);
model.addAttribute(“资产”,资产);
List assets=service.getAssets();
model.addAttribute(“资产”,资产);
返回“更新资产”;
}
我想在页面加载时显示所选资源。
如何使用jstl匹配条件?您的资产模型中应该有一个布尔字段
isSelected
。在控制器中,在所有资产对象中设置isSelected
属性。仅使用此选项,并选中可设置为已选定的属性