0

我正在使用 Spring MVC。我正在尝试显示“公司”对象的列表。公司具有不同的属性,包括公司名称、状态、邮政编码等...

只显示公司对象(内存中每个公司对象的字符串表示)的代码是**

<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 页面上只显示了一串公司对象。我需要的是仅显示公司名称,然后当用户从列表中选择不同的公司名称时,我想在其下方显示 state、zip 等。我可以轻松地替换 getIssuingEntities 方法以返回公司名称列表而不是列表对象,但我最终将只有名称。我的问题是如何存储公司对象的列表以及选择输入上的Onchange时,我将调用公司对象上的方法并显示我想要的属性?

仅供参考:公司对象非常大,但我需要的属性少于 5 个。是否可以使用 javascript 来存储公司对象列表?How can I do it without using Ajax when there is an OnChange on the select input. 使用 ajax 可能很容易获取公司名称,搜索该对象并获取我想要的属性。但我不想那样做。

我怎样才能实现我想要实现的目标?

谢谢

4

1 回答 1

1

您可以使用分隔符(例如 Pipeline | )在您的选项中添加公司名称等值:

<select name="issuingFirm" id="issuingFirm">
    <c:forEach var="entity" items="${candidateIsssuingFirmList}">
        <option value="${entity.id}|${entity.name}">${entity}</option>
    </c:forEach>
</select>

然后您可以添加更改事件以拆分该值并在您的 html 中的某处显示公司名称。

于 2013-05-03T07:18:30.433 回答