我正在使用Spring MVC。我正在尝试显示“Firm”对象列表。公司有不同的属性,包括公司名称,州,邮政编码等......
仅显示公司对象的代码(即内存中每个公司对象的字符串表示)是 **
<select name="issuingFirm" id="issuingFirm">
<c:forEach var="entity" items="${candidateIsssuingFirmList}">
<option value="${entity}">${entity}</option>
</c:forEach>
</select>
**
在我的控制器中我已经拥有公司列表(List<Firm>
)
以下方法是一个实用程序方法,它获取公司列表并将它们放入映射中,以便我可以将它放在模型中以在我的jsp页面中显示它
public static Map getIssuingEntities(List<Firm> firmList) {
Map entityData = new HashMap();
entityData.put("candidateIsssuingFirmList", firmList);
return entityData;
}
在我的控制器(get方法)中,我使用以下代码调用上面的方法并将其放入模型中(模型是ModelMap的类型)
@RequestMapping(value = "...", method = RequestMethod.GET)
public ModelAndView getIssuerInformationPage(ModelMap model, HttpSession session) {
。 。 。
List<Firm> firmList = firmRepository.findGroupFirmsByFirm(getFirmOidFromMemberOid(getMemberOid(session)));
model.addAllAttributes(PrivateOfferPlacementUtil.getIssuingEntities(firmList));
...
.
.
}
此代码的问题是,它在jsp页面上只显示一串公司对象。 我需要的只是显示公司名称,然后当用户从列表中选择不同的公司名称时,我想在它下面显示状态,zip等等。我可以轻松地替换getIssuingEntities方法来返回公司名称列表而不是列表对象,但我最终只会有名字。我的问题是如何存储公司对象列表,当选择输入上有onChange时,我会调用公司对象上的方法并显示我想要的属性?
仅供参考:公司对象非常大但我需要的属性少于5个。是否可以使用javascript来存储firmObjects列表?如果选择输入上有OnChange,如何在不使用Ajax的情况下执行此操作。使用ajax,获取公司名称可能很容易,搜索该对象并获取我想要的属性。但我不想这样做。
我如何实现我想要实现的目标?
谢谢
答案 0 :(得分:1)
您可以使用分隔符(例如Pipeline |)在您的选项中添加公司名称等值:
<select name="issuingFirm" id="issuingFirm">
<c:forEach var="entity" items="${candidateIsssuingFirmList}">
<option value="${entity.id}|${entity.name}">${entity}</option>
</c:forEach>
</select>
然后,您可以添加Change事件以拆分该值并在html中的某处显示公司名称。