我正在使用 Spring MVC。我正在尝试显示“坚定”对象的列表。公司有不同的属性,包括公司名称、州、邮政编码等...
仅显示公司对象(内存中每个公司对象的字符串表示形式)的代码是 **
<select name="issuingFirm" id="issuingFirm">
<c:forEach var="entity" items="${candidateIsssuingFirmList}">
<option value="${entity}">${entity}</option>
</c:forEach>
</select>
**
在我的 Controller 中,我已经有了公司列表 ( List<Firm>
)
以下方法是一个实用方法,它获取公司列表并将它们放入 map 中,以便我可以将其放入模型中以在我的 jsp 页面中显示它
public static Map getIssuingEntities(List<Firm> firmList) {
Map entityData = new HashMap();
entityData.put("candidateIsssuingFirmList", firmList);
return entityData;
}
在我的 Controller (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页面上只显示一串firm对象。 我需要的是仅显示公司名称,然后当用户从列表中选择不同的公司名称时,我想在其下方显示 state、zip 等。我可以轻松替换 getIssuingEntities 方法以返回公司名称列表而不是列表对象,但最终我只会有名称。我的问题是如何存储公司对象列表,当选择输入上有 onChange 时,我将调用公司对象上的方法并显示我想要的属性?
仅供引用:公司对象非常大,但我需要的属性少于 5 个。是否可以使用javascript来存储firmObjects列表?当选择输入上有 OnChange 时,如何在不使用 Ajax 的情况下做到这一点。使用 ajax 可能很容易,只需获取公司名称,搜索该对象并获取我想要的属性即可。但我不想那样做。
我怎样才能实现我想要实现的目标?
谢谢
最佳答案
您可以使用分隔符(例如 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 中的某处显示公司名称。
关于java - 如何使用 SPring MVC 在选择输入上发生 onChange 时显示对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16344682/